使用递归查找最大公约数的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 循环。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP