按照给定的序列打乱一副扑克牌。
#include <bits/stdc++.h>
using namespace std;
int main(){
int time;
cin>>time;
int seq[60];
vector<int> arr(60);
for(int i=1;i<=54;i++){
cin>>seq[i];
arr[i]=i;
}
for(int i=0;i<time;i++){
vector<int> temp(60);
for(int i=1;i<=54;i++){
temp[seq[i]]=arr[i];
}
arr=temp;
}
for(int i=1;i<=54;i++){
if(arr[i]<=13){
printf("S%d",arr[i]);
}else if(arr[i]<=26){
printf("H%d",arr[i]-13);
}else if(arr[i]<=39){
printf("C%d",arr[i]-26);
}else if(arr[i]<=52){
printf("D%d",arr[i]-39);
}else if(arr[i]<=54){
printf("J%d",arr[i]-52);
}
if(i<=53)printf(" ");
}
}
本文介绍了一种基于特定序列的扑克牌洗牌算法,通过读取输入序列,使用C++实现对一副扑克牌进行多次打乱的过程。每张牌根据序列重新定位,最终输出打乱后的牌序。
336

被折叠的 条评论
为什么被折叠?



