题库 信息学奥赛题库 题目列表 (Josephus 问题)有 𝑛 个人围成一个圈...
组合题

(Josephus 问题)有 𝑛 个人围成一个圈,依次标号 0 至 𝑛 − 1。从 0 号开 始,依次 0, 1, 0, 1, ... 交替报数,报到 1 的人会离开,直至圈中只剩下一个人。求最后 剩下人的编号。

试补全模拟程序。

#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;
}
第1题 单选
①处应填( )
A.
 i < n
B.
 c < n
C.
 i < n - 1
D.
c < n - 1
第2题 单选
②处应填( )
A.
i % 2 == 0
B.
i % 2 == 1
C.

p

D.
!p
第3题 单选
③处应填(  )
A.
 i++
B.
 i = (i + 1) % n
C.
c++
D.
p ^= 1
第4题 单选
④处应填( )
A.
i++
B.
i = (i + 1) % n
C.
c++
D.
 p ^= 1
第5题 单选

⑤处应填( )

A.
i++
B.
i = (i + 1) % n
C.
c++
D.
p ^= 1
题目信息
完善程序 2021年 初赛
-
正确率
0
评论
148
点击