分别用数组和链表实现约瑟夫环.约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始任选一个正整数作为报数上限值m,从第一个人

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 14:47:33
分别用数组和链表实现约瑟夫环.约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始任选一个正整数作为报数上限值m,从第一个人

分别用数组和链表实现约瑟夫环.约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始任选一个正整数作为报数上限值m,从第一个人
分别用数组和链表实现约瑟夫环.
约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数.报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人开始重新从1报数,如此下去,直至所有人全部出列为止.试设计一个程序求出出列顺序.
测试数据
m的上限为20,初值为6;
(1) 对于n=7,7个人的密码依次为:3,1,7,2,4,8,4进行测试.
(2) 对于从键盘输入的n和n个人的密码进行测试.
实现提示
1、算法思路
(1)对于已知的n个人的信息、密码可以采用结构体存储,shuru函数将数据存入结构体数组中.
(2)根据约瑟夫问题的要求,构造Joseph函数,设当前人员编号为s1,密码为m,当前共有i个人,则要出列为s1=(s1+m-1)%i,输出出列的成员编号,并将该成员后面的人往前移.
(3)、在主函数中要设置是选择已知的n和n个人的密码的情况和还是要从键盘输入的n和n个人的密码的情况,然后调用响应的函数来得到n和n个密码.
数据结构
struct node /* 单向循环链表结点结构 */
{int num;
int m;
}node;
主程序
main()
{ node *head;
int n;
printf("输入人员总数\n");
scanf("%d",&n);
shuru()
joseph(head,n);
}
(1) 对于要从键盘输入的n和n个人的密码的情况(任选)
初始密码为7
input n:10
no:1 input m:9
no:2 input m:15
no:3 input m:3
no:4 input m:7
no:5 input m:14
no:6 input m:10
no:7 input m:19
no:8 input m:6
no:9 input m:12
no:10 input m:8
6 7 10 1 4 8 2 9 5 3
最好有数组和链表两个程序.
一个也可以,不过希望有适量的注释说明,
回复1楼:不能运行额.

分别用数组和链表实现约瑟夫环.约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始任选一个正整数作为报数上限值m,从第一个人
#include
#include
int main()
{
int i,m,n;
cin>>n>>m;
int a[n];
for(i=0;i

分别用数组和链表实现约瑟夫环.约瑟夫(Joseph)问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始任选一个正整数作为报数上限值m,从第一个人 数据结构的题目.用数组和链表存储方式实现约瑟夫问题.约瑟夫问题: n个人围成一个圆圈,首先第一个人从1开始一个人一个人顺时针报数,报到第m个人,令其出列.然后再从下一个人开始, 约瑟夫环问题,用C语言写要有注释, 约瑟夫环(、循环链表三种方使用一维数组、一维结构体数组法完成约瑟夫环(使用一维数组、一维结构体数组、循环链表三种方法完成) 再不奇怪了 约瑟夫难题的约瑟夫指的是哪位约瑟夫? 用C++数组实现约瑟夫环的问题设有n个人围坐在圆桌周围,现从某个位置 i 上的人开始报数,数到 m 的人就站出来.下一个人,即原来的第m+1个位置上的人,又从1开始报数,再是数到m的人站出来.依次 约瑟夫 JOSEPH怎么样 约瑟夫摩根怎么样 约瑟夫斯问题谁知道? 大神能给出约瑟夫环问题的解题思路吗? 谁能用循环队列的数据结构解决约瑟夫环问题? 约瑟夫环问题:设编号为1,2,3,……,n的n(n>0)个人按顺时针方向围坐一圈,m为任意一个正整数.从第一个用C++怎么实现,求助…… 用数据结构的单循环链表写的约瑟夫环(C语言),哪错了?约瑟夫环 问题描述:约瑟夫问题的一种描述是:编号为1,2,…,n的n个人按顺时针方向围坐一圈,每人持一个密码(正整数).一开始任选 在控制台下实现约瑟夫环.编号为1,2,3,……,n 的 n 个人按顺时针方向围坐一圈,每人持有一个密码一、问题描述 在控制台下实现约瑟夫环.编号为1,2,3,……,n 的 n 个人按顺时针方向围坐一圈,每 C语言写类似于约瑟夫环的决斗问题,急,循环链表!1.决斗【问题描述】n个角斗士被要求进行生死决斗.规则是:所有人围成一圈,按照一定的顺序拉人,被拉出的角斗士就和紧靠其右的人决斗,失 C语言采用单向环表实现约瑟夫环请按以下要求编程实现:① 从键盘输入整数m,通过create函数生成一个具有m个结点的单向环表.环表中的结点编号依次为1,2,……,m.② 从键盘输入整数s(1 急求 约瑟夫C语言的问题 约瑟夫,今天,中午吃什么?//英语翻译