1078. [CSP2021 入门级] 第 34 题
[CSP2021 入门级] 第 34 题
三、完善程序(单选题,每小题 分,共计 分)
()(Josephus 问题) 有 个人围成一个圈,依次标号 至 。从 号开始,依次 交替报数,报到 的人会离开,直至圈中只剩下一个人。求最后剩下人的编号。
试补全模拟程序。
#include <iostream>
using namespace std;
const int MAXN = 1000000;
int F[MAXN];
int main() {
int n;
cin >> n;
int i = 0, p = 0, c = 0;
while (①) {
if (F[i] == 0) {
if (②) {
F[i] = 1;
③;
}
④;
}
⑤;
}
int ans = -1;
for (i = 0; i < n; i++)
if (F[i] == 0)
ans = i;
cout << ans << endl;
return 0;
}
①处应填( )
A.i < n
B.c < n
C.i < n- 1
D.c < n-1
{{ select(1) }}
i < nc < ni < n - 1c < n - 1