如何使用 Go 语言中的递归查找两个给定数字的最小公倍数?


在本教程中,我们将使用递归在 Go 语言中查找两个数字的最小公倍数。为了递归地找到最小公倍数,我们将使用最小公倍数与两个数字的最大公约数(GCD)之间的关系。最小公倍数是指能被两个数字整除的最小数字。

例如,

假设这两个数字是 10 和 4。能被这两个数字整除的最小数字是 20。

使用最小公倍数和最大公约数之间的关系查找最小公倍数

在本例中,我们将使用最小公倍数和两个数字的最大公约数之间的关系来查找最小公倍数。

解释

The relationship between LCM and GCD is
LCM = (number1 * number2) / GCD
number1 = 20
Number2 = 15
GCD = 5
LCM = ( 20 * 15 ) / 5
   = 300 / 5
   = 60

算法

  • 步骤 1 - var number1, number2, gcd, minNumber int - 在这行代码中,我们声明了两个变量来存储我们需要找到最小公倍数的数字,一个变量来存储这两个数字的最大公约数,以及一个变量来存储这两个数字中的最小值。

  • 步骤 2 - number1 = 20 number2 = 15 - 使用您想要查找最小公倍数的值初始化这两个数字。

  • 步骤 3 - if number1 < number2 { } - 查找数字中的最小值并将其存储在 minNumber 变量中。

  • 步骤 4 - gcdOfTwoNumbers(number1, number2, minNumber) - 调用递归函数以查找这两个数字的最大公约数。

  • 步骤 5 - LCM:= (number1 * number2) / gcd - 使用最大公约数和最小公倍数的关系查找最小公倍数。

示例

package main

// fmt package provides the function to print anything
import (
   "fmt"
)

// this function is finding the GCD of two numbers with three parameters
// of int type and have a return type of int type
func gcdOfTwoNumbers(number1, number2, minNumber int) int {

   // checking if the number minNumber can divide both number1 and number2
   if minNumber == 1 || (number1%minNumber == 0 && number2%minNumber == 0) {
      return minNumber
   }

   // returning the GCD
   return gcdOfTwoNumbers(number1, number2, minNumber-1)
}
func main() {

   // declaring the variable to store the value of two numbers
   // and a variable to store an answer
   var number1, number2, gcd, minNumber int

   // initializing both the variables
   number1 = 20
   number2 = 15
   fmt.Println("Program to find the LCM of two numbers using the relation with GCD using recursion.")
   if number1 < number2 {
      minNumber = number1
   } else {
      minNumber = number2
   }

   // calling a function to find the GCD of two number
   // and passing a minimum of number1 and number2
   gcd = gcdOfTwoNumbers(number1, number2, minNumber)
   LCM := (number1 * number2) / gcd

   // printing the result
   fmt.Println("The LCM of", number1, "and", number2, "is", LCM)
}

输出

Program to find the LCM of two numbers using the relation with GCD using recursion.
The LCM of 20 and 15 is 60

描述

在这种方法中,我们首先找到最小数字,然后使用递归方法找到这两个数字的最大公约数,然后通过应用最大公约数和最小公倍数的关系来找到最小公倍数。

结论

这是使用 Go 语言中与最大公约数相关的关系查找两个数字的最小公倍数的递归方法。这是查找最小公倍数的有效方法之一。要了解更多关于 Go 的信息,您可以浏览这些教程。

更新于: 2023年1月11日

585 次查看

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.