求做一个C语言题目约瑟夫问题.M个人围成一个圈,从第一个人开始报数,数到N的人出圈,再由下一个人开始报数,数到N的人出圈,输出依次出圈人的编号.M,N值由键盘输入.例如:M=8,N=5则依次出圈的

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 18:23:02
求做一个C语言题目约瑟夫问题.M个人围成一个圈,从第一个人开始报数,数到N的人出圈,再由下一个人开始报数,数到N的人出圈,输出依次出圈人的编号.M,N值由键盘输入.例如:M=8,N=5则依次出圈的

求做一个C语言题目约瑟夫问题.M个人围成一个圈,从第一个人开始报数,数到N的人出圈,再由下一个人开始报数,数到N的人出圈,输出依次出圈人的编号.M,N值由键盘输入.例如:M=8,N=5则依次出圈的
求做一个C语言题目
约瑟夫问题.M个人围成一个圈,从第一个人开始报数,数到N的人出圈,再由下一个人开始报数,数到N的人出圈,输出依次出圈人的编号.M,N值由键盘输入.
例如:M=8,N=5则依次出圈的是5,2,8,7.
提示:可以设置变量j纪录当前报数人的编号(1-m),变量k为已出圈的人数,变量p为当前所报的数(1-n).数组a从下标1-m的各元素对应m个人的位置,相应的元素值为1是表示该人未出圈,为0时表示已出圈!

求做一个C语言题目约瑟夫问题.M个人围成一个圈,从第一个人开始报数,数到N的人出圈,再由下一个人开始报数,数到N的人出圈,输出依次出圈人的编号.M,N值由键盘输入.例如:M=8,N=5则依次出圈的
#include
#define COUNT 4
/*人的数目可在此更改*/
/*
功能:计算出最后剩余的人的编号,从0到count-1
参数:peopele[] : 存放人的数组
Count : 共有多少个人
Now : 当前数到了几,从0开始,不断往上增加
Left : 当前还剩下几人没’离开’,范围为1-count
返回:返回值为最后剩余的人的编号,从0到count-1
*/
int func(int people[], int count, int now, int left) {
if (left