java编写一个方法,求两个数的最大公约数
时间: 2023-04-26 15:04:30 浏览: 70
可以使用辗转相除法来求两个数的最大公约数。
具体步骤如下:
1. 比较两个数的大小,将较小的数作为被除数,较大的数作为除数。
2. 用除数去除被除数,得到余数。
3. 如果余数为,则最大公约数为除数。
4. 如果余数不为,则将除数作为被除数,余数作为除数,重复步骤2和3,直到余数为。
下面是Java代码实现:
public static int gcd(int a, int b) {
if (b == ) {
return a;
} else {
return gcd(b, a % b);
}
}
其中,a和b分别为两个数,如果b为,则a就是最大公约数;否则,递归调用gcd方法,将b作为a,a%b作为b,继续求最大公约数。
相关问题
利用Java 编写一个方法,分别求两个数的最大公约数和最小公倍数
以下是Java代码实现:
```java
public class MathUtils {
// 求两个数的最大公约数
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);
}
}
```
解释:
- `gcd` 方法使用递归实现,若 `b` 等于 0,则返回 `a`,否则返回 `b` 和 `a` 对 `b` 取模的结果的最大公约数。
- `lcm` 方法直接通过公式 `a * b / gcd(a, b)` 计算最小公倍数。
示例:
```java
int a = 12;
int b = 18;
int gcd = MathUtils.gcd(a, b);
int lcm = MathUtils.lcm(a, b);
System.out.println("最大公约数:" + gcd); // 输出:最大公约数:6
System.out.println("最小公倍数:" + lcm); // 输出:最小公倍数:36
```
java编写两个方法,分别求两个数的最大公约数和最小公倍数
第一个方法:使用循环遍历数组,比较每个数,找到最大值和最小值,分别保存起来。最后输出最大值和最小值的公约数和公倍数。
第二个方法:使用Arrays类中的sort方法对数组进行排序,然后找到数组中的第一个和最后一个数,分别保存起来。最后输出最大值和最小值的公约数和公倍数。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)