21xrx.com
2025-04-12 18:21:57 Saturday
文章检索 我的文章 写文章
我最近在学习 Java 程序设计
2023-06-18 08:53:49 深夜i     7     0

我最近在学习 Java 程序设计,其中有一个非常简单而且实用的问题是如何求一个数对的最大公因数和最小公倍数。我研究了一些资料,终于找到了一种简洁的算法。

首先,最大公因数的求解可以用辗转相除法。例如,我们要求 24 和 60 的最大公因数,可以这样做:用大数除以小数并取余,即 60 ÷ 24 = 2 余 12,然后用小数除以余数并取余,即 24 ÷ 12 = 2 余 0。因为余数为 0,所以 12 就是最大公因数。

而最小公倍数的求解则可以通过最大公因数来简化。具体来说,两个数的最小公倍数等于两数的乘积除以它们的最大公因数。例如,24 和 60 的最大公因数是 12,那么它们的最小公倍数就是 (24 × 60) ÷ 12 = 120。

在 Java 中实现这个算法非常简单。我定义了一个函数 gcd 来求最大公因数:

public static int gcd(int a, int b) {
  while (b != 0)
    int t = b;
    b = a % b;
    a = t;
  
  return a;
}

然后再定义一个函数 lcm 来求最小公倍数:

public static int lcm(int a, int b) {
  return (a * b) / gcd(a, b);
}

以上就是我学习 Java 中求最大公因数和最小公倍数的经验。虽然这个问题非常简单,但是它展示了算法的威力,让我们重新审视了计算机科学的基本概念。

  
  

评论区