//总体思路,a[N]全赋值1,报到3的,赋值0,计数器清零,总人数减一,
//一轮循环结束,数组尾巴连接到头,j=0实现,只要总人数不是1,就一直循环,
//循环的时候数组值为0的全部跳过本次循环直接到下一次。
//最后剩下一个值为1的把它标号输出,代表原来的
#include<stdio.h>
#define N 10
int main()
{
int a[N] ;
int i, j, m, count=0;
m = N;//m为当前人数
for (i=0; i<N; i++)
{
a[i] = 1;
}
while (m != 1)
{
for (j = 0; j<N; j++)
{
if (a[j] == 0)
continue;
count++;
if (count == 3)
{
a[j] = 0;
count = 0;
m--;
}
}
j = 0;
}
for (i=0; i<N; i++)
{
if(a[i] == 1)
printf("%d\n",i+1);
}
return 0;
}