1. 程式人生 > 實用技巧 >PAT Shuffling Machine

PAT Shuffling Machine

題目:https://pintia.cn/problem-sets/17/problems/264

題解:https://www.liuchuo.net/archives/2019

自解(一次通過,但是程式碼顯得繁瑣。關鍵詞:vector的初始化、遍歷。):

#include <iostream>
#include <string>
#include <vector>
#define Total 54
using namespace std;
vector <string> cardSet;
string kind[]={"S","H","C","D"};
void init(vector<string> &cardSet){
	for(int j=0; j<4;j++){
		for(int i =1; i<=13; i++){
			string temp = kind[j];
			cardSet.push_back(temp.append(to_string(i)));
		}
	}
	cardSet.push_back("J1");
	cardSet.push_back("J2");
}
void dispVec(vector<string> cardSet){
	for(int i =0; i<cardSet.size()-1; i++){
		cout<<cardSet[i]<<" ";
	}
	cout<<cardSet[cardSet.size()-1]<<endl;
}
int main()
{
    init(cardSet);
    int x;
    cin>>x;
    int loc[54];
    for(int i=0;i<Total;i++){
    	cin>> loc[i];
	}//input finished	
	vector<string> dest(Total);
	for(int i = 1; i <= x; i++) {
		for(int j=0; j < Total; j++) {			
			dest[loc[j] - 1] = cardSet[j];
		}
		cardSet = dest;
	}
	dispVec(cardSet);
	return 0;
}