使用递归查找 G.C.D 的 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 包提供了打印任何内容的功能 import "fmt" // function prototype func main() { // declare the variables var n1 int var n2 int fmt.Println("Golang Program to find GCD using recursion") // 初始化变量 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 包提供了打印任何内容的功能 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") // 初始化变量 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 循环。