import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
public class GetKing {
public static int n = 10;
public static void main(String[] args) {
LinkedList<Integer> linkedList = new LinkedList<Integer>();
Integer totalInteger= 5;
Integer num =3;
for(int i =0;i<totalInteger;i++){
linkedList.add(i+1);
}
int index=0;
while(linkedList.size()>1){
for(int i =1;i<num;i++){
if(index==linkedList.size()-1){
index=0;
}
else if (index==linkedList.size()&&linkedList.size()<num) {
index=0;
break;
}
else if (index==linkedList.size()&&linkedList.size()>=num) {
index=1;
}
else {
index++;
}
}
linkedList.remove(index);
}
System.out.println("谁是king"+linkedList.get(0));
}
}
约瑟夫环的典型例题,谁是猴王,五个猴,从1开始谁数到三就退出,第一个紧跟着最后一个报数,例如最后一个报2,则第一个报3,淘汰,若最后一个报3,则第一个报1,其中的逻辑如上段代码所示。