有N个人围成一圈,顺序排号。从第一个人开始报数(1~3报数),报3的人退出圈子,问最后留下的人原来排在第几号?
上代码
#include<iostream>
using namespace std;
int main()
{
int *p,j,i,n,a[100];
cin>>n;
for(i=0;i<n;i++)
a[i]=i+1;
p=a;
for(i=0,j=0;i<n-1;)
{
if((*p)!=0)
j++;
if(j==3)
{
i+=1;
*p=0;
j=0;
}
p++;
if(p==(a+n))
{
p=a;
continue;
}
}
for(p=a;p<(a+n);p++)
if(*p!=0)
cout<<*p<<endl;
}
如果入门的话,可以研究这个程序,抠出一个模板,不过个人感觉没什么大必要。这是最水的代码……