//
// main.cpp
// PATA1042
//
// Created by Phoenix on 2018/2/11.
// Copyright © 2018年 Phoenix. All rights reserved.
//
#include <iostream>
#include <cstdio>
void changeTo(int n){
char s;
int t = (n - 1) / 13;
int k = (n - 1) % 13 + 1;
if(t == 0) s = 'S';
if(t == 1) s = 'H';
if(t == 2) s = 'C';
if(t == 3) s = 'D';
if(t == 4) s = 'J';
printf("%c", s);
printf("%d", k);
}
int main(int argc, const char * argv[]) {
int card[55], change[55], next[55];
int k;
scanf("%d", &k);
for(int i = 1; i <= 54; i++) {
card[i] = i;
scanf("%d", &change[i]);
}
for(int i = 0; i < k; i++) {
for(int j = 1; j <= 54; j++) {
next[change[j]] = card[j];
}
for(int j = 1; j <= 54; j++) {
card[j] = next[j];
}
}
for(int i = 1; i <= 54; i++) {
changeTo(card[i]);
if(i < 54) printf(" ");
}
return 0;
}
PATA1042题解
最新推荐文章于 2022-03-17 20:06:18 发布
本文介绍了一个基于C++实现的纸牌洗牌算法,该算法通过多次迭代实现了纸牌的重新排列。具体而言,程序首先初始化一副54张的纸牌,并读取用户输入的洗牌次数及每次洗牌的具体操作,然后通过循环更新纸牌的位置,最终输出洗好后的纸牌序列。
338

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



