简单的约瑟夫问题

时间限制: 1000 ms 内存限制: 65536 kb
总通过人数: 0 总提交人数: 0

题目描述

有 n 位同学围成一圈,从 1 号按序号次序(1、2、3......)开始报数,报数报到 m 的同学即离开这个游戏,之后由下一位同学继续从 1 开始报数,报数为 m 的同学离开游戏,然 后重复上述过程。易知报数进行(n-1)轮之后就只剩下一个人了,求最后剩下的这个同学在 游戏最开始时的编号。

输入

输入数据包括两行:

第一行为人数 n;

第二行为报数目标 m,即每轮报到 m 的同学离开游戏。

输出

输出数据包括1行,1个整数,为最后剩下的人的编号

输入样例1:

5
3

输出样例1:

4

输入样例2:

7
5

输出样例2:

6

输入样例3:(有关样例三,请查看数据范围与实验指导)

987654
8888

输出样例3:

71329

样例解释:

1.对于样例1,最开始有12345一圈,过程为:12345->1245->245->24->4。

2.对于样例2,过程为:1234567->123467->12467->1467->167->16->6。

3.对于样例3,请自行测试。注意,程序长时间不输出可能是仍在继续计算。

数据范围:

3 <= n <= 100, 2 <= m <= 20。

相关推荐