java用数组猴子选大王问题。有10个猴子围成一圈,按顺序排号,从第一只猴 子开始报数(从1到3报数),凡报到3的猴子退出圈外,以此规则进行,最后剩下的一只猴子即为大王。
时间: 2023-12-27 19:01:24 浏览: 92
java代码-编程实现,一个只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,有多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃了一个,以后每天早上都吃掉前一天剩下的一半零一个,第十天早上,发现只剩下一个桃子,请问猴子第一天一共摘了多少个桃子?
public class MonkeyKing {
public static void main(String[] args) {
int n = 10; // 猴子数量
int[] monkeys = new int[n]; // 用数组表示猴子,数组元素为1表示该猴子还在圈内,为0表示已出圈
int count = 0; // 报数计数器
int index = 0; // 猴子数组下标
int left = n; // 剩余猴子数量
// 初始化猴子数组
for (int i = 0; i < n; i++) {
monkeys[i] = 1;
}
// 模拟猴子选大王的过程
while (left > 1) {
if (monkeys[index] == 1) {
count++;
if (count == 3) {
monkeys[index] = 0;
count = 0;
left--;
}
}
index++;
if (index == n) {
index = 0;
}
}
// 输出大王的编号
for (int i = 0; i < n; i++) {
if (monkeys[i] == 1) {
System.out.println("第" + (i+1) + "只猴子是大王!");
}
}
}
}
阅读全文