#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//5.有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),
//凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
int main(){
int restnum=0,totalnum=0,count=1,i;
int arr[totalnum];
printf("请输入totalnum:");
scanf("%d",&totalnum);
restnum=totalnum;
for(i=0;i<totalnum;i++){
arr[i]=i+1;
}
//剩余人数大于一个就继续循环 报数
while(restnum>1)
{
int roundcount=0;
//数组循环一轮报数
while(roundcount<totalnum)
{
//遇到非零报数
if(arr[roundcount]!=0)
{
//报数为3时置零
if(count==3)
{
arr[roundcount]=0;
count=0;
//剩余人数减一
restnum--;
}
//报数加1
count++;
}
roundcount++;
}
}
for(i=0;i<totalnum;i++){
if(arr[i]!=0){
printf("%d",i+1);
break;
}
}
return 0;
}
有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
最新推荐文章于 2023-03-31 16:26:40 发布