第8周笔记5-围圈报数淘汰模拟

mac2024-03-22  25

围圈报数淘汰模拟

        n(n<=100)个人围成一圈按顺序编号,从第一人开始报数,凡报到3的人退出圈子,下一个人从1开始报号, 设计算法求解最后推出圈子的成员编号。

/* n(n<=100)个人围成一圈按顺序编号,从第一人开始报数,凡报到3的人退出圈子,下一个人从1开始报号, 设计算法求解最后推出圈子的成员编号。 */ #include<stdio.h> #define N 101 int vis[N]; int main(){ int n,i,cnt=0,num=3; scanf("%d",&n); int remain=n; while(remain){ for(i=1;i<=n;i++){ if(!vis[i]&&++cnt==num){ vis[i]=1; cnt=0; remain--; if(remain==0) printf("%d",i); } } } return 0; }

 

最新回复(0)