share.png

Go 语言递归函数

Go 语言递归函数

日期:2022-07-07

本文字数:100 字 阅读完需:约 1 分钟

Go 语言递归函数

递归,就是在运行的过程中调用自己。

语法格式如下:

func recursion () {
recursion () /* 函数调用自身 */
}

func main () {
recursion ()
}

Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。

递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。


阶乘

以下实例通过 Go 语言的递归函数实例阶乘:

实例

package main

import "fmt"

func Factorial (n uint64 )(result uint64 ) {
if (n > 0 ) {
result = n * Factorial (n - 1 )
return result
}
return 1
}

func main () {
var i int = 15
fmt .Printf ( "%d 的阶乘是 %d**\n**" , i , Factorial ( uint64 ( i )))
}

以上实例执行输出结果为:

115 的阶乘是 1307674368000

斐波那契数列

以下实例通过 Go 语言的递归函数实现斐波那契数列:

实例

package main

import "fmt"

func fibonacci (n int ) int {
if n < 2 {
return n
}
return fibonacci (n - 2 ) + fibonacci (n - 1 )
}

func main () {
var i int
for i = 0 ; i < 10 ; i ++ {
fmt .Printf ( "%d**\t**" , fibonacci (i ))
}
}

以上实例执行输出结果为:

10    1    1    2    3    5    8    13    21    34