\quad
简单模拟,按照要求交换顺序。建立一个字符数组用于输出前面的字母。
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
char mp[5] = {'S', 'H', 'C', 'D', 'J'};
int k; cin >> k;
int start[55], a[55], b[55];
for (int i = 1; i <= 54; ++i) start[i] = i;
for (int i = 1; i <= 54; ++i) cin >> a[i];
while(k--)
{
for (int i = 1; i <= 54; ++i) b[a[i]] = start[i]; // 交换位置
for (int i = 1; i <= 54; ++i) start[i] = b[i]; // 重新赋值便于下一次交换
}
for (int i = 1; i <= 54; ++i)
{
start[i]--;
cout << mp[start[i]/13] << start[i]%13+1;
if(i!=54) cout << " ";
}
return 0;
}