#include<iostream>
using namespace std;
int
main()
{
int
n,m,i,j,x[100],a[100],p;
cout<<"一天漆黑的夜晚,n个人围成一圈玩死亡游戏,约定正北方向为1号死亡点,";
cout<<"然后由顺时针方向报自己的死亡点,处在第m个死亡点的人会死亡,";
cout<<"这个人死亡之后他所在的死亡点也就消失了,下一个死亡点成为第1个死亡点,";
cout<<"一直重复,直到只剩一个人,GOOD
LUCK,相信你是能活下来的那个"<<endl;
cout<<"请输入n和m:"<<endl;
cin>>n>>m;
for(i=1;i<=n;i++)
{
a[i]=i;
}
for(i=1;i<=n;i++)
{
if(i*m<=n)
{
x[i]=a[i*m];
a[i*m]=0;
}
else
{
if(x[i-1]+1>n)
{
j=(x[i-1]+1)%n;
}
else
{
j=x[i-1]+1;
}
p=1;
do
{
if(a[j]!=0)
{
j++;
if(j>n)
{
j=j%n;
}
p++;
}
else
{
j++;
if(j>n)
{
j=j%n;
}
}
}
while(p!=m);
do
{
if(a[j]==0)
{
j++;
if(j>n)
{
j=j%n;
}
}
}
while(a[j]==0);
x[i]=j;
a[x[i]]=0;
}
}
for(i=1;i<n;i++)
{
cout<<"------------------------"<<"第"<<i<<"个死亡的是处在"<<x[i]<<"死亡点的人"<<endl<<endl;
}
cout<<"+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"<<"恭喜:最后活下来的是处在"<<x[n]<<"死亡点的人"<<endl;
return
0;
}