//猴子选大王 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);
}
}
}
}