使用递归的Go语言程序计算N个数的和


在本教程中,我们将学习如何使用Go语言编程中的递归方法来计算N个数的和。

递归是指函数直接或间接地调用自身。每个递归函数都有一个基本情况或基本条件,它是递归中最终的可执行语句,并停止进一步的调用。

下面是两个例子,展示了两种不同类型的递归:直接和间接。

使用直接递归方法计算N个数的和

语法

Syntax for direct recursion
func recursion() {
   recursion()
}
func main() {
   recursion();
}

算法

  • 步骤1 − 导入fmt包

  • 步骤2 − 创建sum()函数

  • 步骤3 − 我们将使用if...else条件语句

  • 步骤4 − 开始main()函数

  • 步骤5 − 初始化整型变量

  • 步骤6 − 调用sum()函数

  • 步骤7 − 使用fmt.Printf()在屏幕上打印结果

示例

使用直接递归方法的Go语言程序代码,用于计算N个数的和。

// GOLANG PROGRAM TO FIND THE SUM OF // N 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 sum(n int) int { // this is the base condition // if n is equal to 0 if n == 0 { // function will return 0 and end the recursive function return 0 } else { // recursive call to itself return n + sum(n - 1) } } // start the main() function func main() { // Declare and initialize integer variable number := 25 fmt.Println("Sum of first n numbers using recursion in Golang Program") fmt.Printf("Sum of the first %d numbers is %d", number, sum(number)) // Prints the final result }

输出

Sum of first n numbers using recursion in Golang Program
Sum of the first 25 numbers is 325

代码描述

  • 在上面的程序中,我们首先声明main包

  • 我们导入了包含fmt包文件的fmt包

  • 接下来,我们创建一个sum()函数,使用递归技术来计算n个数的和

  • 我们将使用if...else条件语句,它允许您在指定条件为真时执行一段代码,而在条件为假时执行另一段代码。

  • 如果n等于0,函数将返回0并结束递归函数

  • 否则,函数将递归调用自身并返回(n + sum(n-1))

  • 现在开始main()函数

  • 接下来初始化整型变量number

  • 现在调用sum()函数

  • 最后使用fmt.Printf()在屏幕上打印结果。

使用间接递归方法计算N个数的和

语法

func recursion_1() {
   recursion_2()}
func recursion_2(){
   recursion_1()}
func main() {
   recursion_1();
}

算法

  • 步骤1 − 导入fmt包

  • 步骤2 − 创建sum()函数

  • 步骤3 − 我们将使用if...else条件语句

  • 步骤4 − 创建sumofn()函数

  • 步骤5 − 间接递归调用sum()函数

  • 步骤6 − 开始main()函数

  • 步骤7 − 初始化整型变量number

  • 步骤8 − 调用sum()函数

  • 步骤9 − 使用fmt.Printf()在屏幕上打印结果

示例

使用间接递归方法的Go语言程序代码,用于计算N个数的和。

// GOLANG PROGRAM TO FIND THE SUM OF // N 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 sum(n int) int { // this is the base condition // if num is equal to 0 if n == 0 { // function will return 0 and end the recursive function return 0 } else { // recursive call to sumofn () return n + sumofn(n - 1) } } // defining the function with a parameter of int // type and have a return type int func sumofn(n int) int { // this is the base condition // if num is equal to 0 if n == 0 { // function will return 0 and end the recursive function return 0 } else { // recursive call to function sum () return n + sum(n - 1) } } // start the main() function func main() { // Declare and initialize integer variable number := 55 fmt.Println("Sum of first n numbers using recursion in Golang Program") // calling the function sum() fmt.Printf("Sum of first %d numbers is %d", number, sum(number)) // Prints the final result }

输出

Sum of first n numbers using recursion in Golang Program
Sum of first 55 numbers is 1540

代码描述

  • 在上面的程序中,我们首先声明main包

  • 我们导入了包含fmt包文件的fmt包

  • 接下来,我们创建一个natural1()函数,使用递归技术来计算自然数的和

  • 接下来,我们创建一个sum()函数,使用递归技术来计算n个数的和

  • 我们将使用if...else条件语句,它允许您在指定条件为真时执行一段代码,而在条件为假时执行另一段代码。

  • 如果n等于0,函数将返回0并结束递归函数

  • 否则,函数将递归调用sumofn()函数并返回(n + sumofn(n-1))

  • 接下来,我们创建一个sumofn()函数,并像上面的函数一样,对sum()函数进行递归调用并返回(n + sum(n-1))

  • 现在开始main()函数

  • 接下来初始化整型变量number

  • 现在调用第一个函数sum()

  • 最后使用fmt.Printf()在屏幕上打印结果。

结论

在以上两个例子中,我们已经成功编译并执行了Go语言程序代码,使用递归技术来计算n个数的和。我们展示了直接和间接两种递归方法。在第一个例子中,我们展示了直接递归方法,在第二个例子中,我们展示了间接递归方法。

更新于:2022年10月25日

浏览量1K+

开启你的职业生涯

通过完成课程获得认证

开始学习
广告