洗牌,共洗k次,每次将将原先的牌洗进输入好的位置。

步骤:

1 设置次数k,输入位置数列next[55],填充初始牌序start[55];

2 end[next[i]]=start[i]把新的牌序赋值给end数组,并将end数组重新赋值给start数组,共重复k次;

3 由于设置的花色数组mp[5]的序号是0-4,即用1-54/13后,结果对应相应的mp元素。因为n*13/13==1,需要将数组值全部-1,得到正确的mp序号。

在数组值全部-1后,start[i]%13的结果为0-12,需要start[i]%13+1来得到正确的结果1-13

注:由于1-13%13的结果是1,2,3…12,0,必须将数组的整体值-1后取余得到0,1,2…12后再+1才能得到正确结果。否则13的倍数牌将显示为0.

 #include<stdio.h>
int main(){
char mp[]={'S','H','C','D','J'};
int start[],end[],next[];
int k;
scanf("%d",&k);
for(int i=;i<=;i++){
scanf("%d",&next[i]);
start[i]=i;
}
for(int j=;j<k;j++){
for(int i=;i<=;i++){
end[next[i]]=start[i];
}
for(int i=;i<=;i++){
start[i]=end[i];
}
}
for(int i=;i<=;i++){
start[i]--;
printf("%c%d",mp[start[i]/],start[i]%+);
if(i!=) printf(" ");
}
return ;
}

A1042的更多相关文章

  1. A1042. Shuffling Machine

    Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techn ...

  2. A1042 Shuffling Machine (20)

    1042 Shuffling Machine (20)(20 分) Shuffling is a procedure used to randomize a deck of playing cards ...

  3. PAT A1042 Shuffling Machine

    自己思路,没通过 #include <cstdio> #define N 54 int main() { #ifdef ONLINE_JUDGE #else freopen("1 ...

  4. PAT甲级——A1042 Shuffling Machine

    Shuffling is a procedure used to randomize a deck of playing cards. Because standard shuffling techn ...

  5. PAT/简单模拟习题集(二)

    B1018. 锤子剪刀布 (20) Discription: 大家应该都会玩"锤子剪刀布"的游戏:两人同时给出手势,胜负规则如图所示: 现给出两人的交锋记录,请统计双方的胜.平.负 ...

  6. javascript: detect mobile devices or browser

    http://detectmobilebrowsers.com/ http://hgoebl.github.io/mobile-detect.js/ http://www.hand-interacti ...

  7. 1042 Shuffling Machine (20 分)

    1042 Shuffling Machine (20 分) Shuffling is a procedure used to randomize a deck of playing cards. Be ...

  8. A1009 Product of Polynomials (25)(25 分)

    A1009 Product of Polynomials (25)(25 分) This time, you are supposed to find A*B where A and B are tw ...

  9. PAT题目AC汇总(待补全)

    题目AC汇总 甲级AC PAT A1001 A+B Format (20 分) PAT A1002 A+B for Polynomials(25) PAT A1005 Spell It Right ( ...

随机推荐

  1. lgb参数及调参

    1 参数含义 max_depth: 设置树的最大深度,默认为-1,即不限制最大深度,它用于限制过拟合 num_leave: 单颗树的叶子数目,默认为31 eval_metric: 评价指标,可以用lg ...

  2. Jmeter接口测试系列之测试用例变量参数化处理

    在进行接口测试时,一组完整的接口测试用例,存在后一个测试用例使用前一个用例的请求结果中的数据,此时就需要参数化测试用例中值.直接使用变量调用会存在问题,此时就需要用到beanshell去改变. 举例说 ...

  3. 理解ES6中的Symbol

    一.为什么ES6引入Symbol 有时候我们在项目开发的过程中可能会遇到这样的问题,我写了一个对象,而另外的同时则在这个对象里面添加了一个属性或是方法,倘若添加的这个属性或是方法是原本的对象中本来就有 ...

  4. 应用安全 - Web框架 - 数据库管理 - phpMyAdmin - 漏洞汇总

    CVE-2019-18622 Date: 2019.10.28 类型: SQL injection in Designer feature 影响范围: phpMyAdmin versions prio ...

  5. [DS+Algo] 003 一维表结构 Python 代码实现

    接上一篇 前言 本篇共 3 个代码实现 严格来说 code1 相当于模仿了 Python 的 list 的部分简单功能 code2 与 code3 简单实现了"循环单链表"与&qu ...

  6. android app开发中的常用组件

    1 Activity 1.1 Activity的启动 第一,android manifest中指定的主activity,点击app的icon启动进入. 第二,使用intent,在另外一个activit ...

  7. 锋利的jQuery 要点归纳(一) jQuery选择器

    1 基本选择器 $(#id)    根据给定的id匹配一个元素$(.class)    根据给定的类名匹配元素$(element)    根据给定的元素名匹配元素$(*)    匹配所有元素$(sel ...

  8. 万万没想到,Spring Boot 竟然这么耗内存!

    Spring Boot总体来说,搭建还是比较容易的,特别是Spring Cloud全家桶,简称亲民微服务. 但在发展趋势中,容器化技术已经成熟,面对巨耗内存的Spring Boot,小公司表示用不起. ...

  9. jquery导航栏高亮(二级菜单点击一级保持高亮)

    <script type="text/javascript"> var urlstr = location.href; var urlstatus=false; $(& ...

  10. c语言中不允许在函数外部给全局变量赋值

    今天,在写条件编译的时候,出现了在函数外部给全局变量赋值的情况,gcc报错,那么c语言为什么不允许在函数外部给变量赋值呢?为什么声明变量的时候可以对变量进行赋值? 出错代码: /* 2 * ===== ...