用java递归算法求两个整数的最小公倍数
时间: 2023-10-26 12:13:53 浏览: 88
C语言程序计算两个整数的最小公倍数
以下是用 Java 递归算法求两个整数的最小公倍数的示例代码:
```java
public class LCM {
public static int lcm(int a, int b) {
return (a * b) / gcd(a, b);
}
public static int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
public static void main(String[] args) {
int a = 12;
int b = 18;
int lcm = lcm(a, b);
System.out.println("The LCM of " + a + " and " + b + " is " + lcm);
}
}
```
在上面的代码中,我们定义了两个方法 `lcm` 和 `gcd` 来计算两个整数的最小公倍数和最大公约数。`lcm` 方法首先计算两个整数的乘积,然后除以它们的最大公约数来得到最小公倍数。`gcd` 方法使用递归算法来计算两个整数的最大公约数。该方法的基本思想是,如果两个整数 a 和 b 的最大公约数是 c,则 a 和 b 可以表示为 c 的倍数和余数的和,即 a = c * x + r1,b = c * y + r2,其中 r1 和 r2 分别是 a 和 b 对 c 取模的余数。由于 c 是 a 和 b 的公约数,所以它也是 r1 和 r2 的公约数。因此,我们可以递归地计算 r1 和 r2 的最大公约数,直到 r2 等于 0 为止,此时 c 就是 a 和 b 的最大公约数。
阅读全文