Golang程序 使用递归查找自然数之和

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 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程序代码,使用递归技术找到自然数的和。我们展示了直接和间接类型的递归方法。在第一个例子中我们展示了直接递归方法,在第二个例子中我们展示了间接递归方法。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程