实验一约瑟夫环问题实验报告
通信二班
雷鹤
20100820207
李春阳
20100820208
李孟琪
20100820209
一、问题描述
设编号为
1-n
的
n(n>0)
个人按顺时针方向围成一圈.首先第
1
个人从
1
开始顺
时针报数.报
m
的人
(m
为正整数
)
.令其出列。然后再从他的下一个人开始,重
新从
1
顺时针报数,
报
m
的人,
再令其出列。
如此下去,
直到圈中所有人出列为止。
求出列编号序列。
二、需求分析
1
、需要基于线性表的基本操作来实现约瑟夫问题
2
、需要利用数组来实现线性表
3
、测试用例
输入:
10
,
3
输出:
3 6 9 2 7 1 8 5 10 4
三、概要设计
抽象数据类型
为实现上述程序的功能,应以整数存储用户的输入,以及计算出的结果。
算法的基本思想
利用数组来代表一个环,然后模拟报号出圈的过程,直到所有人都出圈。
程序的流程
程序由三个模块组成:
(
1
)
输入模块:完成两个正整数的输入,存入变量
n
和
m
中。
(
2
)
计算模块:计算这
n
个数的输出序列
(
3
)
输出模块:屏幕上显示这
n
个数的输出序列。