有n个人围成一圈,顺序编号。从第一个人开始报数(从1到3),凡报到3的人退出圈子,问最后留下的是原来的第几号人?
#include<stdio.h>
int main(){
int n,a[100],i,j=0;
int num1;//圈内人数
int count=0;//计数器
scanf("%d",&n);
for(i=0;i<100;i++){
a[i]=1;
}
num1=n;
while(num1>1){
if(a[j]==1){
count++;
if(count==3){
count=0;
a[j]=0;
num1--;
}
}
j++;
if(j==n){
j=0;
}
}
for(i=0;i<n;i++){
if(a[i]==1){
printf("最后第%d个人留下。",i+1);
}
}
return 0;
}