用c语言写约瑟夫环问题得到运行结果并画出流程图
时间: 2023-06-25 14:03:49 浏览: 156
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, k, s;
printf("请输入总人数n和每次出圈的数k(用空格隔开):");
scanf("%d %d", &n, &k);
s = josephus(n, k);
printf("最后留下的人的编号为:%d\n", s);
return 0;
}
```
流程图:
```
+-----------+
| 开始程序 |
+-----------+
|
|
v
+-------------------------+
| 输入总人数n和每次出圈的数k |
+-------------------------+
|
|
v
+-------------------+
| 调用josephus函数 |
+-------------------+
|
|
v
+---------------------------+
| 返回最后留下的人的编号s |
+---------------------------+
|
|
v
+-------------------------+
| 输出最后留下的人的编号s |
+-------------------------+
|
|
v
+---------+
| 结束程序|
+---------+
```
注意:上面的流程图仅展示了程序的主要流程,具体实现细节可以参考代码。
阅读全文