Java语言求两个整数的最大公约数,使用有参数和无参数两种方式分别实现;
时间: 2024-10-14 07:07:03 浏览: 35
求两个正整数m、n的最大公约数 Java语言实现
5星 · 资源好评率100%
在Java中,我们可以使用欧几里得算法(也称辗转相除法)来求解两个整数的最大公约数(GCD)。以下是两种实现方式:
### 1. 使用无参数的静态方法(Math类提供)
Java Math库已经为我们提供了gcd方法,无需自定义函数,可以直接使用:
```java
import java.util.Scanner;
import java.lang.Math;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入两个整数:");
int num1 = scanner.nextInt();
int num2 = scanner.nextInt();
// 使用Math类的gcd方法求最大公约数
int gcd = Math.gcd(num1, num2);
System.out.printf("这两个数的最大公约数是:%d", gcd);
scanner.close();
}
}
```
### 2. 自定义有参数的函数实现
如果你需要自定义函数,可以这样编写一个递归版本的gcd函数:
```java
public class GCDExample {
// 自定义求最大公约数的递归函数
public static int gcd(int a, int b) {
if (b == 0) {
return a; // 如果b为0,a就是最大公约数
} else {
return gcd(b, a % b); // 递归调用,直到b为0
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入两个整数:");
int num1 = scanner.nextInt();
int num2 = scanner.nextInt();
// 调用自己的gcd方法
int result = gcd(num1, num2);
System.out.printf("这两个数的最大公约数是:%d", result);
scanner.close();
}
}
```
阅读全文