(Josephus问题)有n个人围城一个圈,依次标号0

(Josephus问题)有n个人围城一个圈,依次标号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 (i = 0; i < n; i++)
        if (F[i] == 0)
            ans = i;
    printf("%d\n", ans);
    return 0;
}

④处应填( )

答案
D

题目信息

题号:1199
题型:单选题
知识点:CSP考试
难度:普通