编辑代码

//猴子选大王 15只猴子围坐在一圈,依次循环报数1-7,报到7就会被淘汰(数组的长度发生变化,所以for的循环条件里不能直接写.length)
//剩下最后一只猴子是大王

public class Main{
    public static void main(String[] args){
        System.out.println("选大王");
        //创建猴子数组,boolean类型--便于区分猴子是否淘汰
        boolean[] m = new boolean[15];
        //依次遍历猴子-赋值
        for(int i = 0;i<m.length;i++){
            m[i] = true;
        }
        //定义变量-猴子报的数、剩余猴子数、数组下标
        int number = 0;
        int monkeyLeft = 15;
        int index = 0;
        //循环直到剩下最后一只猴子
        while(monkeyLeft>1){
          //检测猴子是否淘汰
          if(m[index]){
             //报数
             number++;
             //判断报的数字是否为7
             if(number==7){
             //为7淘汰
             m[index]=false;
             //剩余猴子数减一
             monkeyLeft--;
             //报数归0
             number=0;
          }
          }
        }
          //下标移动--下一位
          index++;
          //围成一圈,最后一个为0---不是很懂
          if(index==15){
              index=0;
          }
        //遍历数组,找到最后一个存活的猴子--true
        for(int i = 0;i<m.length;i++){
            if(m[i]){
                System.out.println(i+1);
            }
        }
    }
}