PAT——甲级1042:Shuffling Mashine
终于做到甲级了
就一个感觉。。。。题目是真的看不懂,亏我还是四六级都过了的人。。。。可是看完题愣是一点都不懂是什么意思。
1042 Shuffling Machine (20 point(s))
Author: CHEN, YueOrganization: 浙江大学Time Limit: 400 msMemory Limit: 64 MBCode Size Limit: 16
看了汉语翻译之后终于懂得是什么意思了,这道题的意思就是洗牌,将初始牌按照输入的数据洗,第一行输入的是洗的次数,第二行是洗的规则,比如第一个数字36就代表把第一张放到第36的位置。
这道题的重点在于怎么把排号转化为SHCDJ的格式。
我写的代码是
1 #include<cstdio> 2 3 int main() 4 { 5 int k,start[54],option[54],end[54]; 6 char label[5] = { 'S','H','C','D','J' }; 7 for (int i = 1;i <= 54;i++) start[i - 1] = i; 8 scanf("%d", &k); 9 for (int i = 0;i < 54;i++) scanf("%d", &option[i]); 10 for (int i = 0; i < k; i++){ 11 for (int j = 0;j < 54;j++) 12 { 13 end[option[j]-1] = start[j]; 14 } 15 for (int j = 0;j < 54;j++) start[j] = end[j]; 16 } 17 for (int i = 0;i < 54;i++) { 18 printf("%c", label[int((end[i] - 1) / 13)]); 19 printf("%d", (end[i]-1)%13+1); 20 if (i != 53) printf(" "); 21 } 22 return 0; 23 }
另外shuffle就是洗牌的意思。。。。而我不认识
这不就是红方梅黑嘛。。。。而我在读题的时候不认识