变态杀人狂
来源:互联网 发布:java包的作用 编辑:程序博客网 时间:2024/04/25 11:56
变态杀人狂
时间限制: 1 Sec 内存限制: 128 MB提交: 26 解决: 16
[提交][状态][讨论版]
题目描述
变态杀人狂三师弟想到一个杀人游戏
游戏规则如下:
三师弟抓了n个人
对这n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出每次被杀的人的编号
注意最后一个活着的人不用输出
输入
多组测试数据,输入n和m值。1<n,m<200,EOF结束
输出
输出每次被杀的人的编号 注意 最后一个人不用输出
样例输入
5 3
样例输出
3152
解题思路
此题运用模拟的想法,最开始的时候,本来算用一个回环来控制,但是很麻烦,后来发现由于外层用个永久循环,当杀到n个人时退出循环比较方便,再有就是用一个标记数组来表示此人是否被杀。
解题代码
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
int n,m;
int vis[205];
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=1;i<=n;i++) //0表示没有被杀,初始时标记所有人都未被杀
vis[i]=0;
int j=0;
int k=0;
while(1) //永久循环
{
for(int i=1;i<=n;i++)
{
if(vis[i]==0)
{
j++;
if(j==m) //当点到第m个人时 杀掉他
{
vis[i]=1; //标记为1
j=0; //重新开始数
k++;//k表示杀的第k个人
if(k!=n) //前n-1个人要输出
printf("%d\n",i);
}
}
}
if(k==n) //当 杀到最后一个人时退出循环
break;
}
}
return 0;
}
- 变态杀人狂
- 变态杀人狂
- 变态杀人狂
- 变态杀人狂
- 1504: 变态杀人狂 时间限制: 1 Sec 内存限制: 128 MB 提交: 21 解决: 10 [提交][状态][论坛] 题目描述 变态杀人狂三师弟想到一个杀人游戏 游戏规则如下: 三师
- 变态
- 变态
- 变态比赛规则
- 变态问题
- 变态的
- input 变态
- 变态最大值
- 变态最大值
- 变态最大值
- 管理员变态
- 变态最大值
- 变态最大值
- 变态最大值
- nginx配置文件参数详解
- nRF24L01一对多做到唯一配对使数据相互不影响
- 《高性能mysql》之Schema与数据类型优化(第四章)
- 【程序4】题目: 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
- 在网页中使用jQuery-qrcode生成二维码以及中文支持解决方案
- 变态杀人狂
- 应用内置embeded tomcat,并打包为fat jar的解决方案
- 多人使用多GPU系统指定GPU,防止冲突
- Palindrome Number
- web.xml详细讲解
- 解题报告 之 HDU5328 Problem Killer
- C语言 · 阿尔法乘积
- ccf真题-201503-3-节日AC题解
- POJ 2643 Election