精简易懂版本
约瑟夫问题II
http://www.nowcoder.com/questionTerminal/ff063da83b1a4d91913dd1b1e8b01466
这题就是把没有喊道1的人删了就好了
import java.util.*;
public class Joseph {
public int getResult(int n) {
LinkedList<integer> arr=new LinkedList<>();
LinkedList<integer> res=new LinkedList<>();
for(int i=1;i<=n;i++) res.add(i);
int m=2;
while(true){
if(arr.size()==0){
for(int i=0;i<res.size();i++){
if(i%m==0) arr.add(res.get(i));
}
if(arr.size()==1) return arr.pop();
res.clear();
arr.addFirst(arr.removeLast());
}else if(res.size()==0){
for(int i=0;i<arr.size();i++){
if(i%m==0) res.add(arr.get(i));
}
if(res.size()==1) return res.pop();
arr.clear();
res.addFirst(res.removeLast());
}
m++;
}
}
}
//到位!!!</integer></integer>