#include <stdio.h>

int main() { int A, B; scanf("%d %d", &A, &B);

int circle[A];
for (int i = 0; i < A; i++) {
    circle[i] = i + 1;
}

int index = 0;
while (A > 2) {
    int count = 0;
    while (count < B) {
        if (circle[index] != 0) {
            count++;
        }
        if (count == B) {
            circle[index] = 0;
            A--;
        }
        index = (index + 1) % A;
    }
}

int C = 0, D = 0;
for (int i = 0; i < A; i++) {
    if (circle[i] != 0) {
        if (C == 0) {
            C = circle[i];
        } else {
            D = circle[i];
        }
    }
}

printf("%d %d\n", C, D);

return 0;

}

C语言实现约瑟夫环问题:找出最后的两个人

原文地址: https://www.cveoy.top/t/topic/9BG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录