java求n个整数的最大公约数
时间: 2024-09-10 08:08:41 浏览: 46
Java求两个正整数的最大公约数和最小公倍数
5星 · 资源好评率100%
在Java中,求n个整数的最大公约数(GCD)可以通过辗转相除法(也称欧几里得算法)来实现。首先,确定两个整数a和b的最大公约数,然后将此结果与下一个数继续求最大公约数,直至遍历完所有数。下面给出一个使用递归实现的示例代码:
```java
public class GCD {
public static void main(String[] args) {
int[] numbers = {15, 25, 30}; // 示例数组
int result = numbers[0]; // 初始假设第一个数为最大公约数
for (int i = 1; i < numbers.length; i++) {
result = gcd(result, numbers[i]); // 逐步求得所有数的最大公约数
}
System.out.println("最大公约数是:" + result);
}
// 辗转相除法求两个数的最大公约数
public static int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
}
```
在上述代码中,`gcd`函数是一个递归函数,它首先检查b是否为0,如果是,则说明已经到达递归的最底层,a即为最大公约数。如果b不为0,则调用自身计算`gcd(b, a % b)`,这里的`%`是取余运算符,它将返回a除以b的余数,然后继续计算b和这个余数的最大公约数。这一过程持续进行,直到余数为0,此时的除数b就是两个数的最大公约数。
阅读全文