使用递归的Go语言程序来计算自然数之和
在本教程中,我们将学习如何在Go语言中使用递归来计算自然数之和。
递归是指一个函数直接或间接地调用自身。每个递归函数都有一个基准情况或基准条件,这是递归中最终的可执行语句,并停止进一步的调用。
以下是展示两种不同类型递归(直接和间接)的两个示例。
使用直接递归方法计算自然数之和
语法
func recursion() {
recursion()
}
func main() {
recursion();
}
算法
步骤 1 − 导入 fmt 包
步骤 2 − 创建函数 naturalnum()
步骤 3 − 我们将使用 if...else 条件语句
步骤 4 − 开始 main() 函数
步骤 5 − 初始化整型变量
步骤 6 − 调用 naturalnum() 函数
步骤 7 − 使用 fmt.Printf() 在屏幕上打印结果
示例
使用直接递归方法的Go语言程序代码,用于使用递归计算自然数之和。
// 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() 在屏幕上打印结果
示例
使用间接递归方法的Go语言程序代码,用于使用递归计算自然数之和
// 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 包中定义,有助于写入标准输出。
结论
在以上两个示例中,我们已成功编译并执行了Go语言程序代码,使用递归技术来计算自然数之和。我们展示了直接和间接类型的递归方法。在第一个示例中,我们展示了直接递归方法,在第二个示例中,我们展示了间接递归方法。
数据结构
网络
关系型数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP