使用递归查找最大公约数的Golang程序


在本教程中,我们将讨论如何编写一个 Golang 程序,使用递归查找最大公约数 GCD。

两个或多个数字的最大公约数 (GCD) 是能够精确地整除它们的最大的公因子。它也称为最大公因数 (HCF)。例如,15 和 10 的最大公因数是 5,因为这两个数字都可以被 5 整除。

15/5 = 3
10/5 = 2

算法

  • 步骤 1 − 导入 fmt 包

  • 步骤 2 − 开始 main() 函数

  • 步骤 3 − 我们将使用 if 条件语句

  • 步骤 4 − 对函数本身进行递归调用

  • 步骤 5 − 开始 main() 函数

  • 步骤 6 − 调用 factorialnumber() 函数

  • 步骤 7 − 使用 fmt.Println() 在屏幕上打印结果

示例 1

// GOLANG PROGRAM TO FIND GCD USING RECURSION package main // fmt package provides the function to print anything import "fmt" // function prototype func main() { // declare the variables var n1 int var n2 int fmt.Println("Golang Program to find GCD using recursion") // initialize the variables n1 = 36 n2 = 60 // print the result using in-built function fmt.Println() fmt.Println("G.C.D OF", n1, n2,"is",hcf(n1,n2)) } // create the function hcf() func hcf(n1 int, n2 int) int { if (n2 != 0) { return hcf(n2, n1 % n2); } else { return n1; } }

输出

Golang Program to find GCD using recursion
G.C.D OF 36 60 is 12

代码描述

  • 在上面的程序中,我们首先声明 main 包

  • 我们导入了 fmt 包,其中包含 fmt 包的文件

  • 现在开始 main() 函数。GO 程序的执行从 main() 函数开始

  • 接下来,我们声明并初始化整数变量 n1 和 n2

  • 现在创建 hcf() 函数

  • 我们将使用 if-else 条件语句来执行代码

  • 在代码行:return hcf(n2, n1 % n2) 中:此处函数自身调用自身,递归调用

  • 最后,使用内置函数 fmt.Println() 在屏幕上打印结果。此函数在 fmt 包中定义,有助于写入标准输出。

算法

  • 步骤 1 − 导入 fmt 包

  • 步骤 2 − 开始 main() 函数

  • 步骤 3 − 声明并初始化变量

  • 步骤 4 − 创建 gcd() 函数

  • 步骤 5 − 我们将使用 if else 条件语句

  • 步骤 6 − 对函数本身进行递归调用

  • 步骤 7 − 使用 fmt.Printf() 打印结果。

示例 2

// GOLANG PROGRAM TO FIND GCD USING RECURSION package main // fmt package provides the function to print anything import "fmt" func main() { // declare the variables var a int var b int var result int fmt.Println("Golang Program to find GCD using recursion") // initialize the variables a = 300 b = 60 result = gcd(a,b) // print the result using in-built function fmt.Printf() fmt.Printf("The GCD of %d and %d is %d.\n",a,b,result) } // create the function gcd() func gcd(a int,b int) int { for a != b { if b < a { return gcd(a - b,b) } else { return gcd(a,b - a) } } return a }

输出

Golang Program to find GCD using recursion
The GCD of 300 and 60 is 60.

代码描述

  • 在上面的程序中,我们首先声明 main 包

  • 我们导入了 fmt 包,其中包含 fmt 包的文件

  • 现在开始 main() 函数。GO 程序的执行从 main() 函数开始

  • 接下来,我们声明并初始化整数变量 a、b 和 result

  • 变量“a”和“b”对应于要查找其 GCD 的整数。变量 result 对应于计算 GCD 后的最终结果。

  • 现在创建 gcd() 函数

  • 我们将使用 for 循环和 if-else 条件语句来执行代码。for 循环用于检查“a”和“b”变量的值是否都不相等。如果此条件为真,则执行循环。如果条件为假,则返回“a”的值。if-else 条件语句用于检查“a”变量的值是否大于“b”变量的值。如果条件为真,则返回两个整数变量值。否则,如果条件为假,则执行 else 语句并返回两个整数变量的值。

  • 在代码行:return gcd(a - b,b):return gcd(a,b - a) 中:此处函数自身调用自身,递归调用

  • 最后,使用内置函数 fmt.Printf() 在屏幕上打印结果。此函数在 fmt 包中定义,有助于写入标准输出。

结论

在以上两个示例中,我们已成功编译并执行了 Golang 程序代码,使用递归技术查找最大公约数 GCD。

我们使用 fmt println() 和 fmt.Println() 函数在输出屏幕上打印结果。这里我们展示了如何在 Go 语言中实现条件语句。我们在一个示例中使用了 if 条件,在另一个示例中使用了 for 循环。

更新于: 2022年10月25日

1K+ 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.