C语言实现约瑟夫环问题:求最后两位幸存者 ID
#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;
while (count < A - 2) {
int num = 0;
while (num < B) {
if (id[index] != 0) {
num++;
}
if (num < B) {
index = (index + 1) % A;
}
}
id[index] = 0;
count++;
}
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", C, D);
return 0;
}
原文地址: https://www.cveoy.top/t/topic/9B6 著作权归作者所有。请勿转载和采集!