JAVA编写一个方法实现获得两个整数m,n的最大公约数
时间: 2024-05-08 15:17:10 浏览: 69
以下是JAVA代码实现:
```java
public static int getGreatestCommonDivisor(int m, int n) {
if (n == 0) {
return m;
} else {
return getGreatestCommonDivisor(n, m % n);
}
}
```
该方法采用递归方式实现辗转相除法求最大公约数。当n等于0时,m就是最大公约数;否则,计算m除以n的余数并将n赋值给m,将余数赋值给n,再次递归计算即可。
相关问题
用JAVA编写一个子类返回两个整数的最大公约数
好的,以下是用 Java 编写的子类来返回两个整数的最大公约数:
```java
public class MaxGCD {
private int num1;
private int num2;
public MaxGCD(int num1, int num2) {
this.num1 = num1;
this.num2 = num2;
}
public int gcd() {
int smaller = Math.min(num1, num2);
for (int i = smaller; i > 0; i--) {
if (num1 % i == 0 && num2 % i == 0) {
return i;
}
}
return -1;
}
}
```
在这个类中,我们使用了构造方法来接收两个整数。然后,我们定义了一个方法 `gcd` 来计算最大公约数。在方法中,我们首先找到两个数中较小的一个,然后从这个较小的数开始倒序循环,如果同时能被这两个数整除,就返回这个数,即为最大公约数。如果没有找到最大公约数,则返回 -1。
使用这个类,你可以创建一个 `MaxGCD` 的实例,并调用 `gcd` 方法来计算两个整数的最大公约数。例如:
```java
MaxGCD maxGcd = new MaxGCD(24, 36);
System.out.println(maxGcd.gcd()); // 输出:12
```
这里我们创建了一个 `MaxGCD` 的实例,传入了两个整数 24 和 36,然后调用了 `gcd` 方法,得到了它们的最大公约数 12。
用java语言编写一个gcd方法,计算两个整数的最大公约数
在Java中,我们可以使用欧几里得算法(也称为辗转相除法)来编写一个计算最大公约数(GCD)的方法。以下是这个方法的一个简单实现:
```java
public class Main {
public static void main(String[] args) {
int num1 = 48;
int num2 = 18;
System.out.println("GCD of " + num1 + " and " + num2 + " is: " + gcd(num1, num2));
}
// 定义计算GCD的方法
public static int gcd(int a, int b) {
if (b == 0) { // 较小数为零的情况
return a;
} else {
// 欧几里得算法:a % b 的结果作为新的 a,b 作为新的 b
return gcd(b, a % b);
}
}
}
```
在这个`gcd`方法中,我们首先检查第二个数是否为零,如果是,则返回第一个数作为结果。如果第二个数不为零,我们就递归地调用自身,并更新`a`为`b`,`b`为`a % b`的结果。当`b`变为零时,循环结束,此时的`a`就是两个输入数字的最大公约数。
阅读全文