有n个人围成一圈,顺序排号,从第一个人开始报数(从1~3报数),凡报到3的人退出圈子,问最后留下的人原来排在第几号。
int main()
{
int i,k,m,n,num[50],*p;
cout<<"请输入总的人数:n=";
cin>>n;
p = num;
for(i=0;i<n;i++)
*(p+i)=i+1;
i = 0; //i为每次循环计数变量
k = 0; //k为按1 2 3报数时的计数变量
m = 0; //m为退出人数
while (m<n-1)
{
if(*(p+i)!=0) k++;
if(k==3)
{
*(p+i) = 0;
k=0;
m++;
}
i++;
if(i==n) i=0;
}
while(*p==0)p++;
cout<<"最后留下的是NO."<<*p<<endl;
return 0;
}