Go语言之递归函数

Go 语言递归函数

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

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

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

package main

import "fmt"

func factorial(n uint64) uint64 {
	if n > 1 {
		return n * factorial(n-1)
	}
	return 1
}

func main() {
	a := factorial(3)
	fmt.Println(a)
}

斐波那契数列

package main

import "fmt"

func feibonaqie(n int) int {

	if n < 2 {
		return n
	}
	return feibonaqie(n-2) + feibonaqie(n-1)
}

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

}