有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
想通了就不难。
代码实现:
#include<stdio.h>
#include<string.h>
int main()
{
int i,j;
int n,out;
int a[1024];
while(scanf("%d",&n)!=EOF)
{ out=j=0;
for(i=1;i<=n;i++)
a[i]=1;
while(out!=n-1)
{
for(i=1;i<=n;i++)
if(a[i]!=0)
{j++;
if(j%3==0)
{a[i]=0;
out++;
}
}
}
for(i=1;i<=n;i++)
if(a[i]==1)
printf("%d\n",i);
}
return 0;
}