洗牌机,每次将牌洗到新的位置,输出洗K次后牌的顺序。简单,水题。在纸上写一下就清楚了,只是输出时要注意,S13,J1等。
AC代码:
//1042 22:18
#include<stdio.h>
int a[60];
int b[60];
char c[5]="SHCD";
int trans[60];
int main()
{
int k,i,j,num;
//freopen("C:\\Documents and Settings\\Administrator\\桌面\\input.txt","r",stdin);
for(i=0;i<=54;i++){
a[i]=i;
}
scanf("%d",&k);
for(j=1;j<=54;j++){
scanf("%d",&num);
trans[j]=num;
}
for(i=0;i<k;i++){
for(j=1;j<=54;j++){
b[trans[j]]=a[j];
}
for(j=1;j<=54;j++)
a[j]=b[j];
}
if(a[1]>=53&&a[1]<=54)
printf("J%d",a[1]-52);
if(a[1]>=1&&a[1]<=52){
if(a[1]%13==0)
printf("%c13",c[a[1]/13-1]);
else
printf("%c%d",c[a[1]/13],a[1]%13);
}
for(i=2;i<=54;i++){
if(a[i]>=53&&a[i]<=54)
printf(" J%d",a[i]-52);
if(a[i]>=1&&a[i]<=52){
if(a[i]%13==0)
printf(" %c13",c[a[i]/13-1]);
else
printf(" %c%d",c[a[i]/13],a[i]%13);
}
}
return 0;
}