【PAT-A】1042. Shuffling Machine 寫題記錄
阿新 • • 發佈:2018-12-20
思路:
設定start[55],end[55]兩個陣列,每一變化以後,end 覆蓋start 然後迴圈。Sx,Dx、Hx、Cx、Jx等等可以依照次序來獲得,沒必要原樣建立55個,直接改變,這樣需要用到strcpy。注意次序和編碼的關係。
#include <cstdio> #include <cstring> int main(){ char mp[5] = {'S','H','C','D','J'}; int start[55], end[55], k, change[55]; for (int i=1; i<=54; i++){ start[i] = i; } scanf("%d",&k); for (int i=1;i<=54;i++){ scanf("%d",&change[i]); } for (int step=0; step<k; step++){ for (int i=1; i<=54; i++){ end[change[i]] = start[i]; } for (int i=1; i<=54; i++){ start[i] = end[i]; } } for (int j=1; j<=54; j++){ if (j!=1) printf(" "); start[j]--; printf("%c%d",mp[start[j]/13],start[j]%13+1); } return 0; }