int n = 5,m = 4;//人数,报的数(3)
int a[5] = {0};//每个人的状态
int count = 0;//目前出圈的人数
int number = 1;//当前报的数
int i = 0;//下标
while (count < 5) {
if (a[i] == 0) {
if (number != m) {
number++;
i++;
if (i >= n) {
i = 0;
}
} else {
a[i] = 1;
number = 1;
printf("%d\n",i);
count++;
i++;
if (i >= n) {
i = 0;
}
}
} else {
i++;
if (i >= n){
i = 0;
}
}
}
本文提供了一个约瑟夫环问题的C语言实现方案。通过定义数组记录参与者的状态,并使用循环逻辑找到被淘汰的参与者,直至所有参与者都被淘汰。该算法适用于理解递归和循环在实际问题中的应用。
11万+

被折叠的 条评论
为什么被折叠?



