C语言实现约瑟夫环问题:找出最后的两个人
#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;
}
原文地址: https://www.cveoy.top/t/topic/9BG 著作权归作者所有。请勿转载和采集!