Java求n个整数的最大公约数
时间: 2024-09-07 14:04:13 浏览: 95
Java求两个正整数的最大公约数和最小公倍数
5星 · 资源好评率100%
在Java中,求n个整数的最大公约数(GCD)可以通过辗转相除法(也称欧几里得算法)来实现。这个算法的基本思想是:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。
对于n个数,可以先计算前两个数的最大公约数,然后用这个最大公约数和下一个数再计算最大公约数,依此类推,直到最后得到所有数的最大公约数。
下面是一个简单的示例代码,展示了如何实现这个算法:
```java
public class GCDExample {
public static void main(String[] args) {
int[] numbers = {48, 64, 80}; // 示例数组
int result = numbers[0]; // 初始化结果为第一个数
for (int i = 1; i < numbers.length; i++) {
result = gcd(result, numbers[i]); // 每次计算当前结果与下一个数的最大公约数
}
System.out.println("最大公约数: " + result);
}
// 辗转相除法求两个数的最大公约数
private static int gcd(int a, int b) {
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
}
return a;
}
}
```
这段代码首先定义了一个整数数组`numbers`,然后初始化最大公约数为数组的第一个元素。接着,通过for循环和`gcd`方法,依次计算当前最大公约数与数组中下一个元素的最大公约数,最终得到所有元素的最大公约数,并将其打印出来。
阅读全文