使用递归查找自然数之和的 Golang 程序
在本教程中,我们将学习如何使用 Golang 中的递归查找自然数之和。
递归是函数通过直接或间接方式调用自身的地方。每个递归函数都有一个基本情况或基本条件,它是递归中的最终可执行语句,并停止进一步的调用。
以下是两个示例,展示了两种不同类型的递归:直接和间接。
通过直接递归方法查找自然数之和
语法
func recursion() { recursion() } func main() { recursion(); }
算法
步骤 1 - 导入包 fmt
步骤 2 - 创建函数 naturalnum()
步骤 3 - 我们将使用 if...else 条件语句
步骤 4 - 启动函数 main()
步骤 5 - 初始化整数变量
步骤 6 - 调用函数 naturalnum()
步骤 7 - 使用 fmt.Printf() 在屏幕上打印结果
示例
使用 Golang 程序代码查找自然数之和使用直接递归方法进行递归。
// GOLANG PROGRAM TO FIND THE SUM OF // NATURAL NUMBERS USING RECURSION package main // fmt 包提供了打印任何内容的功能 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,则递归调用函数本身
Else 函数将返回 num 并结束递归函数
现在启动 main() 函数
接下来初始化整数变量数
现在调用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 包提供了打印任何内容的功能 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 程序代码,使用递归技术来查找自然数的总和。我们展示了直接和间接类型的递归方法。在第一个例子中,我们展示了直接递归方法,在第二个例子中,我们展示了间接递归方法。