1042 Shuffling Machine(補充程式碼+洗牌模擬(下標轉化))
阿新 • • 發佈:2018-12-08
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
const int N = 54;///54張牌。
char color[5] = {'S','H','C','D','J'};///5種顏色的牌。
int start[N+1];///起始位置的編號
int end[N+1];///可以看作是中間陣列
int next[N+1];///操作後的位置
int main()
{
int k;
scanf("%d",&k);
for(int i=1;i<=N;i++)
start[i] = i;///初始化。
for(int i=1;i<=N;i++)
scanf("%d",&next[i]);///輸入處理後的位置。
for(int j=1;j<=k;j++)
{
for(int i=1;i<=N;i++)
end[next[i]] = start[i];///第next[i]個數來自於start[i];
for(int i=1;i<=N;i++)
start[i] = end[i];///為後續的工作做準備。
}
for(int i=1;i<=N;i++)
{
start[i]--;///注意一下。
printf(i==N?"%c%d\n":"%c%d ",color[start[i]/13],start[i]%13+1);
}
return 0;
}