强化练习4:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号。

xiaoxiao2021-02-28  118

题目:

有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),

凡报到3的人退出圈子,问最后留下的是原来第几号。

程序如下:

#include <stdio.h> int main() { int a[100]; int i,n,q; int p = 0; printf("input number:"); scanf("%d",&n); q = n; for (i = 0; i < n; i++) a[i] = i+1; for(i = 0; ; i++) { if(i == n) i = 0; if(a[i] != 0) p++; else continue; if(p%3 == 0) { a[i] = 0; q--; } if(q == 1) break; } for(i = 0; i < n; i++) { if(a[i] != 0) printf("spare: %d\n", a[i]); } return 0; }

转载请注明原文地址: https://www.6miu.com/read-59354.html

最新回复(0)