c++ - 一个关于约瑟夫环的编程问题
PHP中文网
PHP中文网 2017-04-17 11:52:47
0
2
445

简介
约瑟夫环问题是一个古老的问题。假设有n个人围成一个圈,从其中一个人开始以顺时针方向
开始报数,报到数2的人出列,下一个人继续从1开始报。(这会导致这个圈越来越小)直到只剩下
最后一个人为止。

例子:假设又10个人组成一个圈,那么出列的顺序分别是编号为2, 4, 6, 8, 10, 3, 7, 1, 9。
那么第5个人剩下。

现在,我们定义一个函数J(n),自变量n为有n个人围成一个圈,因变量则是剩下的那个人的编号。
则有:J^2(n)=J(J(n)),例如:J^2(10)=J(J(10))=J(5)=3,J^3(n)=J(J(J(n)))

那么问题来了,你能编写一个用于求出J^m(n)的C/C++程序吗?

输入格式:
总共有N组例子
每个例子输入n和m。(0<n,m<10^9)
结束输入的标志是m=n=0

输出格式:
每个例子输出J^m(n)

输入样例

10 2
10 1
20 1
0 0

输出样例

3
5
9

PHP中文网
PHP中文网

认证高级PHP讲师

reply all(2)
Ty80

It is not recommended to come here to ask such questions, just ask in the discussion forum

阿神

This kind of question will definitely be criticized, but I’ll just give you two pieces of code. After all, everyone is young

1. Array implementation
2. Linked list implementation

The code from a long time ago should be no problem

Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template