有n 个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),
凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
public class Baochu { public static void main(String[] args) { Res(10,3); } public static void Res(int n,int flag){ List li = new ArrayList(); if(n!=0){ //加入大List中 for(int i=0;i<n;i++){ li.add(i+1); } int k=1; ListIterator<Integer> it=null; //当剩余1人时停止 while(li.size()>1){ it=li.listIterator(); /** * K相当于一个指针,走到第三个执行if中方法 */ while(it.hasNext()){ int res =it.next(); if(k++%flag==0){ System.out.println(res+"退出"); it.remove(); k =1; } } } System.out.println("最后剩下编号为"+li); } } }
时间: 2024-10-15 18:47:46