华为面试手撕真题【求1-n的最小公倍数】
时间: 2023-10-03 15:00:58 浏览: 257
求1-n的最小公倍数可以通过求解每两个数的最小公倍数来解决。
我们可以首先定义一个函数来计算两个数的最小公倍数。假设这个函数为gcd(a,b)(最大公约数)和lcm(a,b)(最小公倍数)。
我们可以使用递归的方法来计算最小公倍数。首先,假设n=2,那么我们就可以直接调用lcm(1, 2)得到最小公倍数。
接下来,我们假设我们已经得到了lcm(1, 2, ..., n-1)的结果,我们需要计算lcm(1, 2, ..., n)。我们可以使用下面的公式来计算:
lcm(1, 2, ..., n) = lcm(lcm(1, 2, ..., n-1), n)
因此,我们可以使用循环来计算最小公倍数。从n=2开始,每次迭代我们计算lcm(1, 2, ..., n),然后更新n的值为lcm(1, 2, ..., n)。直到n等于给定的数。
以下是Java语言的示例代码:
```java
public class Main {
public static void main(String[] args) {
int n = 10;
int result = lcm(1, 2);
for (int i = 3; i <= n; i++) {
result = lcm(result, i);
}
System.out.println("最小公倍数为: " + result);
}
public static int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
public static int lcm(int a, int b) {
return a * b / gcd(a, b);
}
}
```
这样,我们就能够求得1-n的最小公倍数。
阅读全文