报数 分数 20 全屏浏览题目 切换布局 作者 徐镜春 单位 浙江大学 报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。 本题要求编写函数,给出每个人的退出顺序编号。 函数接口定义: void CountOff( int n, int m, int out[] );
时间: 2024-03-30 12:37:36 浏览: 97
题目描述:
报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。本题要求编写函数,给出每个人的退出顺序编号。
函数接口定义:
void CountOff(int n, int m, int out[]);
其中n是总人数,m是报到m的人退出,out数组返回退出顺序编号。
输入样例:
6 3
输出样例:
3 6 4 2 5 1
题目思路:
1.使用数组记录每个人的状态,1表示未出圈,0表示已经出圈。
2.使用while循环对每一个人进行报数,当数到m的时候,将这个人的状态变为0,并且将这个人的编号加入到输出列表中。
3.使用一个变量count记录出圈人数,当count等于n时结束循环,输出列表即为出圈顺序编号。
代码实现:
阅读全文