算法设计与分析实验二:对任给的3个正整数,求它们的最小公倍数(Java语言)

对任给的3个正整数,求它们的最小公倍数

分析:递归设计的思想就是先找小规模问题去解,然后再递推地解决大问题。还可以直接设计一个求两个数的最小公倍数的函数LeastCommonMultiple()。这样,在主函数中通过函数的嵌套调用,就可完成求解3个数的最小公倍数的过程。

import java.util.Scanner;
public class TEST2 {
    //题目:对任给的3个正整数,求它们的最小公倍数
    //递归设计的思想就是先找小规模问题去解,然后再递推地解决大问题
    // 还可以直接设计一个求两个数的最小公倍数的函数LeastCommonMultiple()
    // 这样,在主函数中通过函数的嵌套调用,就可完成求解3个数的最小公倍数的过程。
    public static void main(String[] args) {

        System.out.println("Input 3 number:");
        Scanner scanner = new Scanner(System.in);
        int x1 = scanner.nextInt();
        int x2 = scanner.nextInt();
        int x3 = scanner.nextInt();
        //利用函数嵌套调用实现3个数的最小公倍数
        int x0 = LeastCommonMultiple(LeastCommonMultiple(x1, x2), x3);
        System.out.println("x1.x2.x3,LeastCommonMultiple is " + x0);
    }

    //求两个整数的最小公倍数
    public static int LeastCommonMultiple(int m, int n) {
        int max = (m > n) ? m : n;
        int c = 1;
        for (int i = max; i <= m * n; i++) { //最大的数值开始,终点为2个数的乘积
            if (i % n == 0 && i % m == 0) { //第一次出现的数值就是最小公倍数
                 c = i;
                break;//找到第一个数值满足条件,跳出循环
            }
        }
        return c;
    }
}