21xrx.com
2024-11-05 16:26:28 Tuesday
登录
文章检索 我的文章 写文章
Java如何求最小公倍数?
2023-06-16 12:59:40 深夜i     --     --
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中如何求最小公倍数,并提供了使用循环和递归两种方式实现的示例代码,希望能对读者有所帮助。

  
  

评论区

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