用迭代实现80人围成一圈逢3取出

 1 import java.util.ArrayList;
 2 import java.util.Arrays;
 3 import java.util.Iterator;
 4 
 5 public class E80 {
 6     public static void main(String[] args){
 7         ArrayList<Integer> list=new ArrayList<Integer>();
 8         for(int i=1;i<=80;i++){
 9             list.add(i);
10         }
11         int j=1;
12         while(list.size()>1){
13             Iterator<Integer>it=list.iterator();
14             while(it.hasNext()){
15                 it.next();
16                 if (j%3==0){
17                     it.remove();
18                 }
19                 j=j+1;
20             }
21         }
22         System.out.println(list);
23     }
24 }

 简单讲解一下:其中每次循环 j 都是持续累加的,就算数到最后一个人  , j 也是不会停止加.

会从第一个继续数 , 但是 j 仍然是以三个为基数判断 .

posted @ 2019-08-06 23:53  挪威森林猫Zzz  阅读(170)  评论(0编辑  收藏  举报