Golang 使用递归求N个数字的总和

Golang 使用递归求N个数字的总和

在本教程中,我们将学习如何使用递归在Golang编程语言中找到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() 在屏幕上打印结果

示例

通过使用直接递归方法,使用 Golang 程序代码查找 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()在屏幕上打印结果

示例

使用间接递归方法在Golang程序中找到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(),并像上面的函数一样进行了递归调用,返回(n + sum(n-1))

  • 现在开始执行函数main()

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

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

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

结论

在以上两个示例中,我们已经成功编译并执行了使用递归技术找出n个数的总和的Golang程序代码。我们展示了直接和间接类型的递归方法。在第一个示例中,我们展示了直接递归方法,在第二个示例中,我们展示了间接递归方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程