12:00的死亡游戏

图片

 #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;
}

原文地址:https://www.cnblogs.com/zzkgis/p/3742624.html