Go语言递归函数的用法
一个函数中可以调用另一个函数,如果在函数中调用函数本身,就成了递归函数。
递归函数是通过不断调用自身代码,当达到特定条件时才终止调用过程,它的语法格式如下:
递归函数用于斐波那契数列、阶乘、归并排序和排列组合等数学思维较强的业务场景。以斐波那契数列为例,斐波那契数列是指这样一个数列:{1,1,2,3,5,8,13,21,…},它的首项为 1,第 2 项也为 1,且从第 3 项起,每一项都等于它前两项之和,实现代码如下:
运行上述代码,运行结果为:
递归函数是通过不断调用自身代码,当达到特定条件时才终止调用过程,它的语法格式如下:
func myfunc() {
// 函数调用自身
myfunc()
}
func main() {
myfunc()
}
递归函数用于斐波那契数列、阶乘、归并排序和排列组合等数学思维较强的业务场景。以斐波那契数列为例,斐波那契数列是指这样一个数列:{1,1,2,3,5,8,13,21,…},它的首项为 1,第 2 项也为 1,且从第 3 项起,每一项都等于它前两项之和,实现代码如下:
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
// 调用函数fibonacci()
for i = 0; i < 10; i++ {
fmt.Printf("%d ", fibonacci(i))
}
}
上述代码定义了函数 fibonacci() 并设置了函数参数 n,函数递归思路如下:
- 当参数 n 小于 2 的时候,直接将参数值作为函数返回值。
- 当参数 n 的值大于或等于 2 的时候,函数 fibonacci() 执行递归操作,分别设置 n-2 和 n-1 作为函数参数。
- 程序每次执行递归的时候,参数 n 都会小于上一次递归的参数值,直到参数 n 小于 2 的时候终止递归操作。
运行上述代码,运行结果为:
0 1 1 2 3 5 8 13 21 34
ICP备案:
公安联网备案: