在控制台下实现约瑟夫环.编号为1,2,3,……,n 的 n 个人按顺时针方向围坐一圈,每人持有一个密码
一、问题描述
在控制台下实现约瑟夫环.
编号为1,2,3,……,n 的 n 个人按顺时针方向围坐一圈,每人持有一个密码(正整数).一开始任选一个正整数作为报数上限值 m,从第一个人开始按顺时针方向自1开始报数,报到 m时停止报数.报m的人出列,将他的密码作为新的 m 值,从他在顺时针方向上的下一个人开始重新报数,如此下去,直至所有人全部出列为止.试设计一个程序求出出列顺序.
二、基本要求
(1)m 的初值由用户输入,n值可以由用户输入也可从读入的文件中统计.
(2)每个人应至少包含的信息:姓名、编号、密码.
(3)参照线性表的实现完成此程序.
(4)打印”约瑟夫环“的初始顺序信息,含有编号、姓名、密码.
(4)用户可选择按姓名或按编号打印出列顺序.
(6)本题提交整个程序的实现代码.
四、测试数据
(1) m = 57,n = 19
(2) m = 65 ,n = 16
(3) m = 32 ,n = 20
(4) m = 101, n = 55
(5) m = 1001 ,n = 28
五、实现提示
(1) 可参照已经实现的的“动态顺序表”或“动态单链表“选择一个适当的存储结构模拟此过程;
(2) 参加“约瑟夫环”游戏的每一项为一个结点,数据类型ElemType为结构体,包含三个数据成员:姓名、编号和密码;
(3) 出列时考虑对第一项和最后一项的作特殊处理.
人气:396 ℃ 时间:2020-08-01 18:06:54
解答
#includeusing namespace std;#define TRUE 1#define FALSE 0#define OK 1typedef int Status;typedef double ElemType;//-----------------------------------//定义单向循环链表typedef struct LNode{ int number;...
推荐
- 约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1— n),从第1号开始报数,一直数到m,数到m
- please,read,roses,book,I,that,can,about怎样连词成句
- 一个长方体通风管,每根8米,横截面是边长为50厘米的正方形.做一根这样的通风管需要多少平方米的铁皮?
- 如图,已知菱形ABCD的周长为16厘米,∠ABC等于120°,求对角线BD和AC的长
- 在温柔舒适的花园中,兰草恪守本分,娴静恬淡,默默奉献,丰富人间香与美,从不张扬;在荒中僻谷,兰草仍然生机勃勃,奋发向上,散发出缕缕清香,不为沦落深山而自弃;在沧海横流,洪水滔天的绝境中,兰草(
- 若点P(3M+5,2M-1)在第四象限,则M的取值范围是?
- 下列正确的IP地址是那个?
- 制作腐乳时,微生物把豆腐中的蛋白质和脂肪分解,这过程叫发酵?发酵不是指微生物的呼吸作用吗?
猜你喜欢