CSP2021PJ-19

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

  1. (完善程序)

(Josephus问题)有 n 个人围成一个圈,依次标号 0 至 n − 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;
}

① 处应填( )。

{{ select(1) }}

  • i < n
  • c < n
  • i < n - 1
  • c < n - 1

② 处应填( )。

{{ select(2) }}

  • i % 2 == 0
  • i % 2 == 1
  • p
  • !p

③ 处应填( )。

{{ select(3) }}

  • i++
  • i = (i + 1) % n
  • c++
  • p ^= 1

④ 处应填( )。

{{ select(4) }}

  • i++
  • i = (i + 1) % n
  • c++
  • p ^= 1

⑤ 处应填( )。

{{ select(5) }}

  • i++
  • i = (i + 1) % n
  • c++
  • p ^= 1

20240915初赛模拟练习(全体入门组)

未参加
状态
已结束
规则
OI
题目
20
开始于
2024-9-15 13:30
结束于
2024-9-15 15:00
持续时间
1.5 小时
主持人
参赛人数
45