QQ扫一扫联系
第34~38题题目
①处应填()
(Josephus 问题)有 nn 个人围成一个圈,依次标号 0 至 n-1。从 0 号开始,依次 0, 1,
0, 1, ... 交替报数,报到 1 的人会离开,直至圈中只剩下一个人。求最后剩下人的编号。
试补全模拟程序。
#include <stdio.h> const int MAXN = 1000000; int F[MAXN]; int main() { int n; scanf("%d", &n); int i = 0, p = 0, c = 0; while( ①) { if (F[i] == 0) { if ( ② ) { F[i] = 1; ③; } ④; } ⑤; } int ans = -1; for (int i = 0; i < n; i++) if (F[i] == 0) ans = i; printf("%d\n", ans); 25return 0; }
①处应填()
i < n
c < n
i < n - 1
c < n - 1