1504: 变态杀人狂
时间限制: 1 Sec
内存限制: 128 MB
提交: 21
解决: 10
[
提交][
状态][
论坛]
1504: 变态杀人狂
时间限制: 1 Sec 内存限制: 128 MB提交: 21 解决: 10
[ 提交][ 状态][ 论坛]
题目描述
变态杀人狂三师弟想到一个杀人游戏
游戏规则如下:
三师弟抓了n个人
对这n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出每次被杀的人的编号
注意最后一个活着的人不用输出
输入
多组测试数据,输入n和m值。1<n,m<200,EOF结束
输出
输出每次被杀的人的编号 注意 最后一个人不用输出
样例输入
样例输出
*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************
情景模拟题(约瑟夫环问题)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j=0,m,n,n1,a[10000];
while(scanf("%d %d",&n,&m)!=EOF)
{
for(i=1;i<=n;i++)
a[i]=1;
n1=0,j=0;
for(;;)
{
for(i=1;;i++)
{
if(a[i]!=0)
j++;
if(j==m)
{
printf("%d\n",i);
a[i]=0;
n1++;
j=0;
}
if(i==n)
i=0;
if(n1==n-1)
break;
}
if(n1==n-1)
break;
}
}
return 0;
}