1042. Shuffling Machine (20)

来源:互联网 发布:4核8g服务器mysql配置 编辑:程序博客网 时间:2024/05/22 17:26

题目链接:https://www.patest.cn/contests/pat-a-practise/1042

题目思路:
一组字符串(扑克牌)为:S1, S2, …, S13, H1, H2, …, H13, C1, C2, …, C13, D1, D2, …, D13, J1, J2。按照输入的数字来进行交换位置。输入的数字为1-54的乱序,将其存入index[]数组。交换规则是:将第i个位置的扑克牌交换到index[i]处去。并以此输入交换k次,输出交换后的扑克牌的序列。

#include <iostream>#include <cstring>using namespace std;int main(){  int k;  cin>>k;  char c[6]="SHCDJ";  char en[55];  int num[55];  for(int i=0;i<54;i++){    en[i]=c[i/13];    num[i]=i%13+1;  }  int index[55];  for(int i=0;i<54;i++){    cin>>index[i];  }  for(int i=0;i<k;i++){    char tmpen[55];    int tmpnum[55];    for(int j=0;j<54;j++){      tmpen[index[j]-1]=en[j];      tmpnum[index[j]-1]=num[j];    }    for(int j=0;j<54;j++){      en[j]=tmpen[j];      num[j]=tmpnum[j];    }  }  cout<<en[0]<<num[0];  for(int i=1;i<54;i++){    cout<<" "<<en[i]<<num[i];  }  return 0;}