【 在 easior 的大作中提到: 】
: 想解决问题,最好能够贴出来最小的代码
:
#include<iostream>
using namespace std;
int main ()
{
int a[16],x=0,n=0,i=0; //17个人编号,x表示退出人数,n表示报数,i是数组下标
for(i=0;i<17;i++) //编号写入数组
{a[i]=i+1;}
i=0;//i重新置0,从数组第一个开始报数
while(x<16)//x是退出的人数,当x=16时停止循环,因为此时队列里就剩下一个人了
{
if (a[i]!=0)
{
n++;
}
if(n==3) //报数3的倍数的人退出,该数组置0,x加1
{a[i]=0;n=0;x++;}
i++;
if (i==17)
{i=0;}
}
//退出循环
for( i=0;i<17;i++)
{if(a[i]!=0)
{ cout<<a[i]<<endl;
}
}
}
--
FROM 183.197.194.*