Java实现最大公约数和最小公倍数计算

本文将使用Java语言编写一个类,该类包含一个方法用于计算两个整数的最大公约数。接着,编写了该类的子类,重写了方法用于计算最小公倍数。文章还展示了如何使用这两个类分别计算最大公约数和最小公倍数。

父类代码:

public class GCD {
    public int f(int a, int b) {
        if (b == 0) {
            return a;
        } else {
            return f(b, a % b);
        }
    }
}

子类代码:

public class LCM extends GCD {
    public int f(int a, int b) {
        int m = super.f(a, b);
        return a * b / m;
    }
}

应用程序代码:

public class Main {
    public static void main(String[] args) {
        GCD gcd = new GCD();
        int a = 12, b = 18;
        System.out.println('最大公约数:' + gcd.f(a, b));
        
        LCM lcm = new LCM();
        System.out.println('最小公倍数:' + lcm.f(a, b));
    }
}

输出:

最大公约数:6
最小公倍数:36

代码解释:

  1. GCD类

    • f(int a, int b) 方法使用递归的方式计算最大公约数。当 b 为 0 时,返回 a,否则递归调用 f(b, a % b),直到 b 为 0。
  2. LCM类

    • f(int a, int b) 方法首先调用父类 GCDf 方法计算 ab 的最大公约数 m。然后,使用公式 (a * b) / m 计算最小公倍数,并返回结果。
  3. Main类

    • 创建 GCDLCM 对象,分别调用 f 方法计算最大公约数和最小公倍数,并将结果打印到控制台。

通过这个示例,您可以学习如何使用Java实现最大公约数和最小公倍数的计算,并理解继承和方法重写的概念。您可以根据需要修改代码,例如添加用户输入功能或进行错误处理。


原文地址: https://www.cveoy.top/t/topic/oVD6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录