题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位
import java.util.LinkedList;
import java.util.List;
/**
* @author Golphing.W
* @date 19/5/14 下午3:08
*/
public class Test {
public static void get3(int n, int m){
List<Integer> list = new LinkedList<>();
for(int i=1;i<=n;++i){
list.add(i);
}
int j=1;
int index = 0;
while(list.size()>1){
if(list.size() - 1 < index ){
index = 0;
}
if(j % m == 0){
list.remove(list.get(index));
}else {
index++;
}
if(j == m){
j = 1;
}else {
j += 1;
}
}
System.out.println(list.get(0));
}
public static void main(String[] args) {
get3(50000000, 3);
}
}