题目描述
n个人想玩残酷的死亡游戏,游戏规则如下:n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,活到最后的一个人是胜利者。请输出最后一个人的编号。
输入
多组测试数据,输入n和m的值,m,n都在1-150之间。
输出
输出胜利者的编号。
样例输入
5 3
1 1
样例输出
4
1
提示
第一组测试数据中:第一轮:3被杀;第二轮:1被杀;第三轮:5被杀;第四轮:2被杀;4获胜。
#include <iostream>
using namespace std;
int main()
{
int n,m;
while(cin>>n>>m)
{
int a[n];
for(int i=0;i<n;i++)
{
a[i]=1;
}
int n1,sum=0;
n1=n;
while(n1!=1)
{
for(int i=0;i<n;i++)
{
if(a[i]!=0)
{
sum++;
}
if(sum==m&&a[i]!=0)
{
a[i]=0;
sum=0;
n1--;
}
}
}
for(int i=0;i<n;i++)
{
if(a[i]!=0)
{
cout<<i+1<<endl;
}
}
}
return 0;
}