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;
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;
}
原文地址: https://www.cveoy.top/t/topic/9HR 著作权归作者所有。请勿转载和采集!