学了一年的c,这道题还是不会(sad)
有n个学生围城一圈,顺序排号,从第1个学生开始报数(从1到3报数),凡报到3的学生退出圈子,到最后只留下一名学生,问最后留下来的是原来第几号学生?
那你在网上搜索过吗?
https://zhuanlan.
#include <stdio.h> #define n 100 int main() { int array[n] = {}; int quitNum = 0; int nCount = 0; for(int i = 0; quitNum < n - 1; ++i) { if(i >= n) i = 0; if(array[i] == 1) continue; ++nCount; if(nCount == 3) { array[i] = 1; nCount = 0; ++quitNum; } } for(int i = 0; i < n; ++i) { if(array[i] == 0) { printf("最后留下来的是原来第%d号学生", i + 1); break; } } return 0; }