题目描述
题意
一副54张的扑克牌,按要求进行多次移动,输出最后的结果
分析
用两个数组存放操作前的排序和操作后的排序,每次操作完后把操作后的排序数组赋值给操作前的排序的数组即可
输出的时候需要输出花色,注意花色和数字的关系
#include<cstdio>
char mp[5]={'S','H','C','D','J'};
int start[55],end[55],next[55];
int main(){
int k;
scanf("%d",&k);
for(int i=1;i<=54;i++)
start[i]=i;
for(int i=1;i<=54;i++)
scanf("%d",&next[i]);
for(int step=0;step<k;step++)
{
for(int i=1;i<=54;i++){
end[next[i]]=start[i];
}
for(int i=1;i<=54;i++){
start[i]=end[i];
}
}
for(int i=1;i<=54;i++){
if(i!=1) printf(" ");
start[i]--;
printf("%c%d",mp[start[i]/13],start[i]%13+1);
}
}