21xrx.com
2025-04-24 04:22:38 Thursday
文章检索 我的文章 写文章
Java如何求最小公倍数?
2023-06-16 12:59:40 深夜i     11     0
Java 最小公倍数 循环 递归

最小公倍数是指两个或多个整数的公共倍数中最小的数。在Java中,要求两个数的最小公倍数可以使用循环或递归方式来实现。下面是使用循环方式实现求最小公倍数的示例代码:

public class LCM {
  public static void main(String[] args) {
    int num1 = 15, num2 = 20, lcm;
    lcm = (num1 > num2) ? num1 : num2;
    while (true) {
      if (lcm % num1 == 0 && lcm % num2 == 0) {
        System.out.printf("The LCM of %d and %d is %d.", num1, num2, lcm);
        break;
      }
      ++lcm;
    }
  }
}

上述代码中,定义了两个整数num1和num2,并使用了三目运算符求出了它们中的最大值作为lcm的初值。接着使用while循环不断增加lcm的值,并判断是否同时满足被num1和num2整除,如果成立则说明找到了最小公倍数,可输出结果并结束循环。

除了循环方式,递归方式也可以实现求最小公倍数。下面是使用递归方式实现求最小公倍数的示例代码:

public class LCM {
  public static void main(String[] args) {
    int num1 = 15, num2 = 20, lcm;
    lcm = findLCM(num1, num2);
    System.out.printf("The LCM of %d and %d is %d.", num1, num2, lcm);
  }
  static int findLCM(int num1, int num2) {
    int max = (num1 > num2) ? num1 : num2;
    if (max % num1 == 0 && max % num2 == 0)
      return max;
     else {
      return findLCM(num1, num2, ++max);
    }
  }
  static int findLCM(int num1, int num2, int max) {
    if (max % num1 == 0 && max % num2 == 0)
      return max;
     else {
      return findLCM(num1, num2, ++max);
    }
  }
}

上述代码中,定义了两个整数num1和num2,以及一个名为findLCM的递归方法。在方法中,先使用三目运算符求出num1和num2中的最大值max,判断是否同时满足被num1和num2整除,如果成立则说明找到了最小公倍数,结束递归并返回结果。如果不成立,则递归调用findLCM方法,并将max+1作为新的参数传递进去,直到找到最小公倍数为止。

本文介绍了在Java中如何求最小公倍数,并提供了使用循环和递归两种方式实现的示例代码,希望能对读者有所帮助。

  
  

评论区