编写java程序【问题描述】要从n只猴子中选出一位大王。它们决定使用下面的方法: n只猴子围成一圈,从1到n顺序编号。从第q只猴子开始,从1到m报数,凡报到m的猴子退出竞选,下一次又从退出的那只猴子的下一只开始从1到m报数,直至剩下的最后一只为大王。请问最后哪只猴子被选为大王。 【输入形式】控制台输入三个整数n,m,q。 【输出形式】输出最后选为大王的猴子编号。 【样例输入】 7 4 3 【样例输出】 4 【样例说明】输入整数n = 7,m = 4,n = 3,输出4
时间: 2024-03-04 09:49:44 浏览: 45
以下是Java程序,可以实现选出最后一只猴子作为大王的功能:
```java
import java.util.Scanner;
public class MonkeyKing {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入整数n,m,q:");
int n = sc.nextInt();
int m = sc.nextInt();
int q = sc.nextInt();
sc.close();
int[] monkeys = new int[n];
for (int i = 0; i < n; i++) {
monkeys[i] = i + 1;
}
int count = 1;
int index = q - 1;
while (n > 1) {
if (monkeys[index] != 0) {
if (count % m == 0) {
monkeys[index] = 0;
n--;
}
count++;
}
index++;
if (index == monkeys.length) {
index = 0;
}
}
for (int i = 0; i < monkeys.length; i++) {
if (monkeys[i] != 0) {
System.out.println("最后选为大王的猴子编号为:" + monkeys[i]);
break;
}
}
}
}
```
运行程序,输入7 4 3,输出结果如下:
```
请输入整数n,m,q:7 4 3
最后选为大王的猴子编号为:4
```
阅读全文