package com.acm;
import java.util.ArrayList;
import java.util.List;
import com.bean.Node;
public class Josephu {
public static void generate(){
int totalP = 41;
int dead = 3;
List<String> list = new ArrayList<String>();
for(int i = 2;i <= totalP;i++){
if( i == 16){
list.add("Josephu's friend " + i);
}else if(i == 31){
list.add("Josephu " + i);
}else{
list.add("" + i);
}
}
Node<String> head = new Node<String>("1");
SingleCycleLinkedList<String> scll = new SingleCycleLinkedList<String>(head, list);
Node<String> current = head;
while(scll.size(current) > 3){
for(int i = 0;i < dead - 2;i++){
current = current.getNext();
}
current.setNext(current.getNext().getNext());
current = current.getNext();
}
print(current);
}
public static void print(Node<String> head){
Node<String> current = head;
do{
System.out.println(current.getData());
current = current.getNext();
}while(current.getNext() != head);
}
public static void main(String[] args) {
generate();
}
}
Josephu问题实现
最新推荐文章于 2019-10-18 15:38:23 发布