题目:
有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),
凡报到3的人退出圈子,问最后留下的是原来第几号。
程序如下:
#include <stdio.h>
int main()
{
int a[100];
int i,n,q;
int p = 0;
printf("input number:");
scanf("%d",&n);
q = n;
for (i = 0; i < n; i++)
a[i] = i+1;
for(i = 0; ; i++)
{
if(i == n)
i = 0;
if(a[i] != 0)
p++;
else
continue;
if(p%3 == 0)
{
a[i] = 0; q--;
}
if(q == 1)
break;
}
for(i = 0; i < n; i++)
{
if(a[i] != 0)
printf("spare: %d\n", a[i]);
}
return 0;
}