变态杀人狂
来源:互联网 发布:charls数据库 编辑:程序博客网 时间:2024/04/25 12:50
变态杀人狂
时间限制: 1 Sec 内存限制: 128 MB提交: 64 解决: 35
[提交][状态][讨论版]
题目描述
变态杀人狂三师弟想到一个杀人游戏
游戏规则如下:
三师弟抓了n个人
对这n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出每次被杀的人的编号
注意最后一个活着的人不用输出
输入
多组测试数据,输入n和m值。1<n,m<200,EOF结束
输出
输出每次被杀的人的编号 注意 最后一个人不用输出
样例输入
5 3
样例输出
3152
解题思路:
题目意思是,M个人数数,数到数字N的人被杀,依次输出除最后一个人外所有被杀人的序号。这是一道模拟题,我们可以开一个一维数组,我们仅适用
一维数组1~n的空间,人杀与没有被杀是两种状态,我们可以用0和1表示,我们用1表示没有被杀,用0表示没有被杀,刚开始我们先将数组下标为1~n的
位置初始化为1,然后进行处理,如果某人被杀,我们将这个位置的数字置为0,然后输出当前数组元素的下标即可。
题目代码:
#include<stdio.h>
#include<string.h>int a[10000];int main(){int m,n,i,ccount,j; //有m个人,数到n被杀,ccount计数被杀的人的个数while(~scanf("%d%d",&m,&n)){ccount=0; //开始被杀人数初始化为0j=1; //j从1开始memset(a,1,sizeof(a)); //将数组初始化为1while(1) //永循环,人被杀完时停止{for(i=1;i<=m;i++){if(a[i]==0) //代表已经被杀,结束本次循环即可continue;else{if(j==n) //如果数到了数字n{a[i]=0; //数组元素值变为0,代表这个人被杀了ccount++; //被杀人数加1j=0; //j变为0,因为后面j会增1if(ccount!=m){printf("%d\n",i); //如果被杀人数不等于总人数,输出序号,因为题目说了最后一个被杀的人不用输出}}j++; //j每次增1,代表数数}}if(ccount==m) //如果人全被杀完了,结束永循环break;}}return 0;}
0 0
- 变态杀人狂
- 变态杀人狂
- 变态杀人狂
- 变态杀人狂
- 1504: 变态杀人狂 时间限制: 1 Sec 内存限制: 128 MB 提交: 21 解决: 10 [提交][状态][论坛] 题目描述 变态杀人狂三师弟想到一个杀人游戏 游戏规则如下: 三师
- 变态
- 变态
- 变态比赛规则
- 变态问题
- 变态的
- input 变态
- 变态最大值
- 变态最大值
- 变态最大值
- 管理员变态
- 变态最大值
- 变态最大值
- 变态最大值
- 有n个整数使前面各数顺序向后移m个位置 递归看不懂
- StaticFactoryMethod_Level3
- LabVIEW程序的主要框架
- bolts全收集流程攻略解析
- POJ2187 Beauty Contest(凸包+对踵点对求解)
- 变态杀人狂
- 必须采用初始化列表的三个例子
- c++移位运算符
- Cglib动态代理
- Struts2实现MVC(概念解析)
- [pySpark][note]Web Server Log Analysis with Apache Spark
- easy 24
- StaticFactoryMethod_Level4
- Android性能优化之加快应用启动速度