万卷网 > 题目详情
题型:组合题

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

试补全模拟程序。

01 #include <iostream>

02 

03 using namespace std;

04 

05 const int MAXN = 1000000;

06 int F[MAXN];

07 

08 int main() {

09 int n;

10 cin >> n;

11 int i = 0, p = 0, c = 0;

12 while (①) {

13 if (F[i] == 0) {

14 if (②) {

15 F[i] = 1;

16 ③;

17 }

18 ④;

19 }

20 ⑤;

21 }

22 int ans = -1;

23 for (i = 0; i < n; i++)

24 if (F[i] == 0)

25 ans = i;

26 cout << ans << endl;

27 return 0;

28 }

(1).

②处应填( )

A.

 i % 2 == 0

B.

i % 2 == 1 

C.

p

D.

!p

(2).

①处应填( )

A.

i < n

B.

c < n

C.

i < n - 1

D.

c < n - 1

(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

更新时间:2022-11-24 13:07:47 |
【知识点】 CCF非专业级别软件能力认证CSP-J/入门级

相似题推荐

简答题

T4多边形


2026-04-17
简答题

T3异或和


2026-04-17
简答题

T2座位


2026-04-16
简答题

T1拼数

2026-04-16
单选题

假设a、b、c都是布尔变量,逻辑表达式(a &&b)IⅡ(!c &&a)的值与下列哪个表达式不始终相等?()

A.

a &&(bⅡ!c)

B.

(al|!c)&&(bⅡ !c)&&(all a)

C.

a &&(!b II c)

D.

!(!a|!b)II(a &&!c)

2025-10-16
公众号
客服 反馈
顶部