1497: 变态杀人狂
1.描述
变态杀人狂三师弟想到一个杀人游戏
游戏规则如下:
三师弟抓了n个人
对这n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出每次被杀的人的编号
注意最后一个活着的人不用输出
输入
多组测试数据,输入n和m值。1<n,m<200,EOF结束
输出
输出每次被杀的人的编号 注意 最后一个人不用输出
样例输入
5 3
样例输出
3
1
5
2
2.代码
相同题型( 约瑟夫环问题)1098: C语言程序设计教程(第三版)课后习题10.5 。1479: 猴子选大王。1497:变态杀人狂。1484:青蛙(四)。
#include<stdio.h>
#include<math.h>
int main()
{
int n,i,m;
while(~scanf("%d %d",&n,&m))
{
int a[10000]= {0},j=0,x=n;
while(x>1)
{
for(i=1; i<=n; i++)
{
if(a[i]==0)
{
j++;
if(j%m==0)
{
a[i]=1;
x--;
printf("%d\n",i);
}
}
}
}
}
return 0;
}