看到不少答案比较繁琐,增加了初学者的压力
于是我简化了我自己的版本
#include <stdio.h>
int main()
{
int a[1000]={0}; //全部初始化为0,每人都是0
int n;
scanf("%d",&n);
int i=0,t;
int count=0;
int leave=n; //剩下的人数
while (leave!=1){
if(a[i]==0) count++;
if(count%3==0) { //逢3筛出来
a[i]=1;
leave--;
for(t=0;t<n;t++) printf("%d ",a[t]); //输出筛选过程
printf("\n");
}
i=(i+1)%n; //跳到值为0的下一个人
while(a[i]!=0){
i=(i+1)%n;
}
}
printf("剩下的是原来的第%d号\n",i+1);
return 0;
}
欢迎各位来给批评意见