Java 中如何编写一个函数,用于求两个整数的最大公约数?
发布时间:2023-05-31 07:41:11
Java 中求最大公约数的函数可以使用欧几里得算法,也称作辗转相除法。根据欧几里得算法,对于两个正整数a和b,他们的最大公约数等价于a mod b和b的最大公约数。如果a mod b等于0,则b即为最大公约数;否则,我们可以计算b mod (a mod b)和a mod b的最大公约数,以此类推。因此,我们可以用递归的方式实现求最大公约数的函数。
以下是Java实现求最大公约数的函数:
public static int gcd(int a, int b) {
if (b == 0) {
return a;
} else {
return gcd(b, a % b);
}
}
代码说明:
- 函数名:gcd
- 参数:两个整数a和b
- 返回值:a和b的最大公约数
- 如果b等于0,则返回a,否则递归调用gcd函数,并把b和a mod b作为参数。
下面是一些示例:
System.out.println(gcd(24, 36)); // 12 System.out.println(gcd(60, 48)); // 12 System.out.println(gcd(81, 27)); // 27 System.out.println(gcd(19, 17)); // 1
我们可以看到,该函数可以正确地计算两个整数的最大公约数。
