Golang 使用递归查找自然数的和
在本教程中,我们将学习如何使用递归在Golang中查找自然数的和。
递归是指函数通过直接或间接的方式调用自身的过程。每个递归函数都有一个基本情况或基本条件,它是递归中最终可执行的语句,并停止进一步的调用。
下面是两个示例,展示了两种不同类型的递归:直接递归和间接递归。
使用直接递归方法查找自然数的和
语法
func recursion() {
recursion()
}
func main() {
recursion();
}
步骤
- 第一步 − 导入 fmt 包
-
第二步 − 创建函数 naturalnum()
-
第三步 − 我们将使用 if…else 条件语句
-
第四步 − 开始函数 main()
-
第五步 − 初始化整数变量
-
第六步 − 调用函数 naturalnum()
-
第七步 − 使用 fmt.Printf() 在屏幕上打印结果
示例
通过使用直接递归方法在 Golang 程序中找到自然数和的递归。
// GOLANG PROGRAM TO FIND THE SUM OF
// NATURAL NUMBERS USING RECURSION
package main
// fmt package provides the function to print anything
import (
"fmt"
)
// defining the function with a parameter of int
// type and have a return type int
func naturalnum(num int) int {
// this is the base condition
// if num is not equal 0
if num != 0 {
// recursive call to itself
return num + naturalnum(num-1)
} else {
// function will return num and end the recursive function
return num
}
}
// start the main() function
func main() {
fmt.Println("Golang Program to find the sum of natural numbers using recursion")
// initializing the integer variable
number := 10
// calling the naturalnum() function
fmt.Printf("Sum of all the natural numbers till %d is %d", number, naturalnum(number))
// Prints the final result
}
输出
Golang Program to find the sum of natural numbers using recursion
Sum of all the natural numbers till 10 is 55
代码说明
- 在上面的程序中,我们首先声明了 main 包
-
我们导入了包含 fmt 包文件的 fmt 包
-
接下来,我们创建了一个名为 naturalnum() 的函数,使用递归技术找到自然数的和
-
我们声明了整数变量 num
-
我们将使用 if…else 条件语句,它允许您在条件为真时执行一块代码,并在条件为假时执行另一块代码。
-
如果 num 不等于 0,则递归调用函数本身
-
否则函数将返回 num 并结束递归函数
-
现在开始函数 main()
-
接下来初始化整数变量 number
-
现在调用 naturalnum() 函数
-
最后使用 fmt.Printf() 在屏幕上打印结果。
通过间接递归方法找到自然数的总和
语法
func recursion_1() {
recursion_2()
}
func recursion_2(){
recursion_1()
}
func main() {
recursion_1();
}
步骤
-
步骤1 - 导入fmt包
- 步骤2 - 创建函数natural1()
- 步骤3 - 使用if…else条件语句
-
步骤4 - 创建函数natural2()
-
步骤5 - 通过间接方式递归调用函数natural1()
-
步骤6 - 开始函数main()
-
步骤7 - 初始化整数变量num
-
步骤8 - 调用函数natural1()
-
步骤9 - 使用fmt.Printf()在屏幕上打印结果
示例
Golang程序代码,使用间接递归方法使用递归查找自然数之和
// GOLANG PROGRAM TO FIND THE SUM OF
// NATURAL NUMBERS USING RECURSION
package main
// fmt package provides the function to print anything
import (
"fmt"
)
// defining the function with a parameter of int
// type and have a return type int
func natural1(num int) int {
// this is the base condition
// if num is not equal 0
if num != 0 {
// recursive call to the second function
return num + natural2(num-1)
} else {
// function will return num and end the recursive function
return num
}
}
func natural2(num int) int {
// this is the base condition
// if num is not equal 0
if num != 0 {
// recursive call to the first function indirectly
return num + natural1(num-1)
} else {
// function will return num and end the recursive function
return num
}
}
// start the main() function
func main() {
fmt.Println("Golang Program to find the sum of natural numbers using recursion")
// initializing the integer variable
number := 50
// calling the natural1() function
fmt.Printf("Sum of all natural numbers till %d is %d", number, natural1(number))
// Prints the final result
}
输出
Golang Program to find the sum of natural numbers using recursion
Sum of all natural numbers till 50 is 1275
代码描述
- 在上面的程序中,我们首先声明包main
-
我们导入了包含fmt包的文件的fmt包
-
接下来,我们创建一个名为natural1()的函数,使用递归技术找到自然数的和
-
我们将使用if条件语句,如果指定的条件为真,则执行一块代码,然后递归调用函数natural2()
-
接下来,我们创建一个名为natural2()的函数。这里会间接地递归调用第一个函数natural()
-
现在开始函数main()。GO程序的执行从函数main()开始
-
接下来,我们调用函数natural1()来找到自然数的和。
-
最后,使用内置函数fmt.Printf()将结果打印在屏幕上。这个函数在fmt包下定义,用于写入标准输出。
结论
在上述两个示例中,我们成功编译并执行了使用递归技术找到自然数和的Golang程序代码。我们展示了直接和间接递归方法。在第一个示例中,我们展示了直接递归方法,在第二个示例中,我们展示了间接递归方法。