内容要求:
據說著名猶太曆史學家 Josephus有過以下的故事:在羅馬人占領喬塔帕特後,39 個猶太人與Josephus及他的朋友躲到一個洞中,39個猶太人決定甯願死也不要被敵人抓到,于是決定了一個自殺方式,41個人排成一個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下一個重新報數,直到所有人都自殺身亡為止。然而Josephus 和他的朋友并不想遵從,Josephus要他的朋友先假裝遵從,問他倆站在那兩個位置才能活着留下。并列印出死亡位置
public static int N = 20;
public static int M = 5;//數到M就咔擦一個人
public void FromJava() {
killNode();
}
public class Node {
int val;//下标
Node next;
public Node(int val){
this.val = val;
}
}
public void killNode() {
// Node header = new Node(1);
// Node x = header;
// for (int i = 2; i <= N; i++) {
// x.next = new Node(i);
// x = x.next;
// }
// x.next = header;
// System.out.println("被咔擦的順序為:");
// while (x!=x.next){
// for(int i = 1;i<M;i++){
// x = x.next;
// }
// System.out.println(x.next.val+"被幹掉 ");
// x.next = x.next.next;
// }
// System.out.println("最後這個幸運兒是:"+x.val);
Node header= new Node(1);
Node x =header;
for (int i=2 ;i<=N;i++ ){
x.next=new Node(i);
x=x.next ;
}
x.next=header;
while (x!=x.next){
for (int i=0 ;i<M;i++){
x =x.next;
}
System.out.println(x.next.val+"被幹掉 ");
x.next=x.next.next;
}
System.out.println("最後這個幸運兒是:"+x.val);
}
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 6被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 12被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 18被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 4被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 11被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 19被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 7被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 15被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 3被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 14被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 5被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 17被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 10被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 8被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 2被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 9被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 16被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 13被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 1被幹掉
10-19 17:12:49.041 3042-3042/com.vise.snowdemo I/System.out: 最後這個幸運兒是:20