编写一个方法,返回未指定数量的整数的最大公约数。方法定义指定如下: public static int gcd(int... numbers) 编写一个测试程序,提示用户输入五个数字,调用方法找到这些数字的最大公约数,并显示最大公约数。
时间: 2024-09-29 18:08:59 浏览: 31
编写一个名为 `gcd` 的静态方法,该方法接收一个整数数组作为参数,用于计算这些整数的最大公约数(Greatest Common Divisor, GCD)。可以使用欧几里得算法(Euclidean algorithm)来实现这个功能。下面是方法的实现:
```java
public static int gcd(int... numbers) {
if (numbers.length == 0) {
throw new IllegalArgumentException("At least one number is required.");
}
int result = numbers[0];
for (int i = 1; i < numbers.length; i++) {
result = euclideanGcd(result, numbers[i]);
if (result == 1) {
break;
}
}
return result;
}
private static int euclideanGcd(int a, int b) {
while (b != 0) {
int temp = a % b;
a = b;
b = temp;
}
return a;
}
```
接下来,我们编写一个简单的测试程序,让用户输入五个数字并调用 `gcd` 方法:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter five integers separated by spaces:");
int[] inputNumbers = new int[5];
for (int i = 0; i < 5; i++) {
inputNumbers[i] = scanner.nextInt();
}
try {
int maxGcd = gcd(inputNumbers);
System.out.printf("The greatest common divisor of the entered numbers is: %d\n", maxGcd);
} catch (IllegalArgumentException e) {
System.out.println(e.getMessage());
}
scanner.close();
}
}
```
当运行此程序时,它会提示用户输入五个整数,然后计算并显示它们的最大公约数。
阅读全文