十五只猴子围成一圈选大王,依次1~7循环报数,报到7的猴子被淘汰,直到最后一只猴子称为大王,问,哪只猴子最后能称为大王?(多种方案解决)
用boolean数组解决方案(后面有用int数组解决的方案)
/**
* @author Ziph
* @date 2020年2月23日
* @Email mylifes1110@163.com
*/
public class ChooseKing {
public static void main(String[] args) {
//定义一个长度为15的数组,即:15只猴子
boolean[] m = new boolean[15];
//初始化数组为true以便后续淘汰为false的猴子
for (int i = 0; i < m.length; i++) {
m[i] = true;
}
System.out.println("恭喜第" + print(choiceKing(m)) + "只猴子被选为大王!");
}
//选一只猴子,即定了要淘汰14只猴子
public static boolean[] choiceKing(boolean[] m) {
int monkeys;//记录为true的猴子数量
int count = 0;//记录报的数字
do {
monkeys = 0;//每次初始化猴子数量
for (int i = 0; i < m.length; i++) {
if (m[i] == false) {
//false为被淘汰的猴子
continue;
}
count