用数组猴子选大王问题,有10个猴子围成一圈,按顺序排号,从第一只猴子开始报数(从1到3报数),凡报到3的猴子退出圈外,以此规则进行,最后剩下的猴子即为大王,。要求用java玩成
时间: 2024-05-25 15:18:17 浏览: 118
Python使用列表完成程序的编写:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到m报数),凡是报到m的人退出圈子,问最后留下的是原来第几号的人。
5星 · 资源好评率100%
public class MonkeyKing {
public static void main(String[] args) {
int n = 10; // 猴子的数量
int[] monkeys = new int[n]; // 用数组表示猴子,初始值为1表示还在圈内
int count = 0; // 报数计数器
int index = 0; // 当前猴子的下标
while (true) {
if (monkeys[index] == 1) { // 如果当前猴子还在圈内
count++; // 报数
if (count == 3) { // 报到3的猴子退出圈外
monkeys[index] = 0; // 猴子离开圈外
count = 0; // 计数器清零
}
}
if (monkeys[n - 1] == 0) { // 如果只剩下一只猴子,结束循环
break;
}
index++; // 下一个猴子
if (index == n) { // 如果已经到了最后一只猴子,从第一只猴子开始
index = 0;
}
}
for (int i = 0; i < n; i++) {
if (monkeys[i] == 1) { // 找到最后剩下的猴子
System.out.println("大王是第" + (i + 1) + "只猴子");
}
}
}
}
阅读全文