[PAT解题报告] Shuffling Machine

简单题,给定54张牌,每个数代表一张牌,然后有一种操作关系,每次操作告诉你把现在第i张牌放在第j=p[i]个位置,这样不断操作k次,问最终结果。直接模拟即可,注意点主要就是最后要把数字还原成牌的表示。而且k不大,直接循环操作即可。

代码:
#include <cstdio>
#include <string>
#include <cstring>
using namespace std;

const char *c = "SHCD";
char temp[54][4], card[54][4];
int a[54];

int main() {
int n = 0;
    for (int i = 0; i < 4; ++i) {
        for (int j = 0; j < 13; ++j) {
            sprintf(card[n++], "%c%d",c[i],j + 1);
        }
    }
    strcpy(card[52], "J1");
    strcpy(card[53], "J2");
    scanf("%d",&n);
    for (int i = 0; i < 54; ++i) {
        scanf("%d",a + i);
    }
    while (n--) {
        for (int i = 0; i < 54; ++i) {
            strcpy(temp[a[i] - 1], card[i]);
        }
        for (int i = 0; i < 54; ++i) {
            strcpy(card[i], temp[i]);
        }
    }
    for (int i = 0; i < 54; ++i) {
        if (i) {
            putchar(' ');
        }
        printf("%s",card[i]);
    }
    puts("");
    return 0;
}

原题连接: http://www.patest.cn/contests/pat-a-practise/1042
全部评论

相关推荐

06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务