有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位
我自己写的程序如下,编译没问题,但得不到正确答案,希望帮忙纠错#include<stdio.h>
#define N 20
int main()
{
int i,s,a[N+1];
a[0]=0;
for(i=1;i<=N;i++)
a[i]=i;
s=0;
for(i=1;i<=N;i++) {
if(a[i]!=0)
{ s++;
if(s%3==0) a[i]=0; }
if(i==N&&s==1) break;
if(i==N) {i=0;s=s%3;}
}
for(i=1;i<=N;i++)
if(a[i]!=0)
printf("%d\n",i);
scanf(" ");
return 0;
}