在本教程中,我们将讨论如何编写一个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的整数。变量结果对应于计算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循环。