Golang 使用递归查找自然数的和

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程序代码。我们展示了直接和间接递归方法。在第一个示例中,我们展示了直接递归方法,在第二个示例中,我们展示了间接递归方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程