题目地址:1042 Shuffling Machine (20 分)
模拟题,定义一个新的字符串数组作为中间产物临时存放卡牌。每执行一次,中间数组更新一次,然后在复制到卡牌数组中。
代码
#include <bits/stdc++.h>
using namespace std;
string a[] = {"0","S1","S2","S3","S4","S5","S6","S7","S8","S9","S10","S11","S12","S13",
"H1","H2","H3","H4","H5","H6","H7","H8","H9","H10","H11","H12","H13",
"C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13",
"D1","D2","D3","D4","D5","D6","D7","D8","D9","D10","D11","D12","D13",
"J1","J2"
};
string s[55];
int main() {
//freopen("datain.txt","r",stdin);
int n;
scanf("%d", &n);
int next[55];//临时数组
next[0] = 0;
for (int i = 1; i < 55; i++ ) {
scanf("%d", &next[i]);
}
while (n--) {
for (int i = 1; i < 55; i++) {
s[next[i]] = a[i];
}
for (int i = 1; i < 55; i++) {
a[i] = s[i];
}
}
cout<<a[1];
for (int i = 2; i < 55; i++) {
cout<<" "<<a[i];
}
cout<<endl;
return 0;
}