21xrx.com
2024-11-09 09:28:30 Saturday
登录
文章检索 我的文章 写文章
关键词:Java、最大公约数、最小公倍数
2023-06-10 20:26:25 深夜i     --     --

Java编程中,求最大公约数和最小公倍数是经常用到的算法之一。最大公约数是指两个数的公共因子中最大的那个数,而最小公倍数是指两个数的公共倍数中最小的那个数。

我们可以使用辗转相除法来求最大公约数,具体代码如下:


public static int gcd(int num1, int num2) {

  if (num2 == 0)

    return num1;

   else {

    return gcd(num2, num1 % num2);

  }

}

以上代码递归调用求余,直到余数为零,即为最大公约数。

而最小公倍数则可以通过两数相乘再除以最大公约数得出,具体代码如下:


public static int lcm(int num1, int num2) {

  return num1 * num2 / gcd(num1, num2);

}

以上代码将两数相乘之后再除以最大公约数即可求出最小公倍数。

在实际应用中,我们可以将以上两个方法封装在一个工具类中供其他程序调用:


public class MathUtil {

  public static int gcd(int num1, int num2) {

    if (num2 == 0)

      return num1;

     else {

      return gcd(num2, num1 % num2);

    }

  }

  public static int lcm(int num1, int num2) {

    return num1 * num2 / gcd(num1, num2);

  }

}

以上代码中,我们使用了静态方法,使得其他程序可以直接调用而无需实例化该类。

在使用时,我们只需要使用工具类中的对应方法即可,例如:


System.out.println(MathUtil.gcd(12,18)); // 输出:6

System.out.println(MathUtil.lcm(12,18)); // 输出:36

总结来看,最大公约数和最小公倍数是Java编程中经常用到的算法,使用辗转相除法和两数相乘再除以最大公约数的方法可以很方便地求出它们的值。将这些方法封装在一个工具类中,可以方便地调用,提高代码的复用性和可读性。

标题:Java编程中求最大公约数和最小公倍数

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复