#include <stdio.h>

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

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

int count = 0;
int index = 0;
int left = A;
while (left > 2) {
    if (id[index] != 0) {
        count++;
        if (count == B) {
            id[index] = 0;
            left--;
            count = 0;
        }
    }
    index++;
    if (index == A) {
        index = 0;
    }
}

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

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

return 0;

}

C语言实现约瑟夫环问题:求解剩余两人的ID

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

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