约瑟夫问题
约瑟夫问题是个有名的问题:N个人围成一圈,从第一个开始报数1,第二个 2,第三个3,第M个M并切出列。然后下一个接着从1开始顺序报数,例如N=6,M=5,出列的顺序是:5,4,6,2,3,1。
当M,N为任意自然数时,求出列顺序。
代码实现
这里使用单向循转链表解决该问题。
class Node{
public int num;
public Node next;
public Node(int num){
this.num = num;
}
}
class RingLinkedList{
private Node head;
//push元素
public void push(int num){
Node node = new Node