约瑟夫环问题c 代码
时间: 2024-02-10 18:06:29 浏览: 63
C语言约瑟夫环的实现
好的,以下是一个用 C 语言实现的约瑟夫环问题的代码:
```c
#include <stdio.h>
int josephus(int n, int k)
{
if (n == 1)
return 1;
else
return (josephus(n - 1, k) + k - 1) % n + 1;
}
int main()
{
int n = 7;
int k = 3;
printf("The chosen place is %d\n", josephus(n, k));
return 0;
}
```
上述代码中,我们定义了一个递归函数 `josephus`,它接受两个参数 `n` 和 `k`,分别表示总人数和每次要剔除的人数。函数返回值为最后留下的人所在的位置。
在 `main` 函数中,我们定义了 `n` 和 `k` 的值,然后调用 `josephus` 函数,并输出结果。
执行上述代码,输出如下:
```
The chosen place is 4
```
这表示,如果有7个人围成一圈,每次去掉第3个人,最后留下的是第4个人。
阅读全文