【Golang系列】-递归
2022-03-15
递归
函数内部调用函数自身的函数称为递归函数
- 递归就是自己调用自己
- 必须先定义 函数的退出条件,没有退出条件,递归将成为死循环
- 很可能产生一大堆goroutine,也可能会出现栈空间内存溢出问题
递归示例:
package main
import "fmt"
func a(n int) int {
//返回条件
if n == 1 {
return 1
} else {
//自己调用自己
return n * a(n-1)
}
}
func main() {
n := 5
r := a(n)
fmt.Println(r)
}
斐波那契数列
package main
import "fmt"
func f(n int) int {
//退出点判断
if n == 1 || n == 2 {
return 1
}
//递归表达式
return f(n-1) + f(n-2)
}
func main() {
r := f(5)
fmt.Println(r)
}