报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。

本题要求编写函数,给出每个人的退出顺序编号。

函数接口定义:

void CountOff( int n, int m, int out[] );

其中n是初始人数;m是游戏规定的退出位次(保证为小于n的正整数)。函数CountOff将每个人的退出顺序编号存在数组out[]中。因为C语言数组下标是从0开始的,所以第i个位置上的人是第out[i-1]个退出的。

裁判测试程序样例:

#include <stdio.h>
#define MAXN 20void CountOff( int n, int m, int out[] );int main()
{int out[MAXN], n, m;int i;scanf("%d %d", &n, &m);CountOff( n, m, out );   for ( i = 0; i < n; i++ )printf("%d ", out[i]);printf("\n");return 0;
}

/* 你的代码将被嵌在这里 */
输入样例:

11 3

输出样例:

4 10 1 7 5 2 11 9 3 6 8

答案:
注意:k=(1+k)%n不可写成k=(k++)%n,不然会因为k=0,而无限循环;

void CountOff(int n,int m,int out[]){int i,j,k;for(i=0;i<n;i++){out[i]=0;}for(k=0,i=1,j=1;j<=n;k=(1+k)%n){if(out[k]==0){if(i==m){out[k]=j;j++;i=0;}i++;}}
}

PTA~习题8-4 报数 (20分) 2020年11月相关推荐

  1. 浙大 | PTA 习题9-5 通讯录排序 (20分)

    输入n个朋友的信息,包括姓名.生日.电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录.题目保证所有人的生日均不相同. [EDIT]: 疫情时免费期间写的,现在题换了答案可能不再通用, ...

  2. PTA习题6-7 简单计算器 (20分)

    模拟简单运算器的工作.假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算. 输入格式: 输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数. ...

  3. PTA 习题4-6 水仙花数 (20分)

    水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身.例如:153=13​​ +5​3​​ +33​​ . 本题要求编写程序,计算所有N位水仙花数. 输入格式: 输入在一行中 ...

  4. 习题8-4 报数 (20分)

    习题8-4 报数 (20分) 报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号.从第一个人开始报数,报到m(<n)的人退出圈子:下一个人从1开始报数,报到m的人退出圈子.如此下去,直到留 ...

  5. 习题4-5 换硬币 (20分) 将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

    习题4-5 换硬币 (20分) 将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分 ...

  6. 习题4-5 换硬币 (20分)

    习题4-5 换硬币 (20分) 将一笔零钱换成5分.2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法? 输入格式: 输入在一行中给出待换的零钱数额x∈(8,100). 输出格式: 要求按5分 ...

  7. PTA 7-9 叶节点求和 (20 分)

    PTA 7-9 叶节点求和 (20 分) 对给定的有N个节点(N>=0)的二叉树,求叶节点元素之和 没有当过父节点的节点都是叶子节点 #include <iostream> #inc ...

  8. 习题7-5 找鞍点 (20分)(函数调用解法:先找最大值后比较是否为最小值)

    习题7-5 找鞍点 (20分) 一个矩阵元素的"鞍点"是指该位置上的元素值在该行上最大.在该列上最小. 本题要求编写程序,求一个给定的n阶方阵的鞍点. 输入格式: 输入第一行给出一 ...

  9. 习题8-7 字符串排序 (20 分)

    习题8-7 字符串排序 (20 分) 本题要求编写程序,读入5个字符串,按由小到大的顺序输出. 输入格式: 输入为由空格分隔的5个非空字符串,每个字符串不包括空格.制表符.换行符等空白字符,长度小于8 ...

最新文章

  1. Python计算机视觉:第九章 图像分割
  2. RFT属于软件测试管理工具,IBM Rational FunctionalTester RFT 软件功能测试工具_FunctionalTester_领测软件测试网...
  3. C语言模拟顺序栈的创建、入栈、出栈操作
  4. 3D渲染集群,听说过吗?
  5. 如何使用Arrays工具类操作数组
  6. [Java] 蓝桥杯ADV-91 算法提高 素数判断
  7. HTMLjavaSkcriptCSSjQueryajax(六)
  8. 高等数学--数学分析一
  9. 在Excel里怎么输入可以打钩的选择框?
  10. java compar_Java中Comparable和Comparator
  11. shell获取脚本本身名称_linux,shell脚本中获取脚本的名字,使用脚本的名字。
  12. 金山中学 rugular SRM 04 ——纪念我的第一次Ak
  13. python 实现数据结构八种内部排序算法
  14. 在word文档中添加目录(包括项目符号、编号、多级列表使用方法)
  15. css 水平居中和垂直居中
  16. linux线程 ppt,Linux多线程编程多核编程.ppt
  17. 如何在chrome浏览器下设置12px以下的字体
  18. java UDP通信程序DatagramSocket数据发送
  19. 【转】30岁程序员的转型思考
  20. antd pro使用iconfont

热门文章

  1. 【读书】少有人走的路---自律(斯科特 派克)
  2. java怎样断开http请求_http post请求管道断开
  3. global与$GLOBAL的区别
  4. kafka java api 删除,Kafka:删除闲置的消费者组ID
  5. Android破解游戏内购心得
  6. 一次哔哩哔哩面试经历,吐血整理
  7. 关于校园招聘 - 秋招和春招
  8. Go语言核心之美 2.6-常量
  9. 键盘上的按键--键码 对应表
  10. python对excel分列转多行