Problem C: 约瑟夫问题

Problem C: 约瑟夫问题

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 205  Solved: 139
[Submit] [Status] [Web Board] [Creator:]

Description

【约瑟夫问题】
    编号为1,2,......,n的n个人按照顺时针方向围坐一圈。从第一个人开始顺时针方向自1开始报数,报到m时停止报数。报m 的人出列,从他在顺时针方向的下一个人开始重新报数,如此下去,直到所有人全部出列为止。设计一个程序来求出出列顺序。其中n,m由键盘输入。
【思路1】
    利用数组存放n个人,数组下标等于他的编号,然后模拟报数过程,报到m时输出该位置的人编号,然后该位置的值清0,继续报数并判断是否为0,是0则跳过。直到n个人全部出列为止。

 【思路2】

    利用队列来实现
 



Input

n m

Output

出圈的编号

Sample Input Copy

10 3

Sample Output Copy

3 6 9 2 7 1 8 5 10 4