题目:有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); } }