出圈问题(已解决)
编号为<1, 2, 3, …, N-1, N>的共N个人依次按顺时针方向围成一个圆圈(如图). 现从第K ( ) 个人开始, 按顺时针方向依次从0到H报数, 报到H的人被从圆圈中逐出. 然后从其下一个人开始, 重新进行0到H的报数过程. 如此反复, 直到圆圈中没有人剩下为止. 试编写程序模拟上述过程, 具体要求如下:要求:
1. 对程序中使用的主要数据结构进行简明扼要的说明 (“说明”可以用成段的文字进行表述, 也可以以注释方式在程序中进行解释; 成段的文字说明须以注释方式放置于程序的首部). (10分)
2. 编写模拟报数过程的函数 (60分), 并在程序的适当位置添加注释, 以增强程序的可读性(10分).
3. 编写主函数, 对第2步中的函数进行调用 (5分); 并分别计算在 <N=50, K=5, H=17> 和 <N=100, K=1, H=23> 时, 被从圆圈中依次逐出的人的排列顺序(需要在屏幕上显示) (每种情况5分, 共10分).
4. 编写代码, 将上一步骤中依次被逐出的人的排列顺序, 分别输出到本目录(或称文件夹)中的两个文本文件serial1.txt和serial2.txt中 (注: 相关代码可以是独立的函数, 也可以是某个函数中的某一段) (5分).
[[it] 本帖最后由 yqiong 于 2008-3-29 15:16 编辑 [/it]]