递归函数
递归,就是在运行的过程中调用自己。
语法格式如下:
func recursion() {
recursion() /* 函数调用自身 */
}
func main() {
recursion()
}
阶乘
阶乘最初的定义就是小于等于某个正整数的所有正整数的乘积,5 的阶乘(记作 5!)= 5 × 4 × 3 × 2 × 1,这个很好理解(这个符号是1808年才由法国数学家发明)。最初是和排列数的计算有关,从而推广到0!=1(这个是定义的,但是不这样排列数的计算就有问题,同时也给很多公式带来方便)。
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)))
}
斐波那契数列
以下实例通过 Go 语言的递归函数实现斐波那契数列:
package main
import "fmt"
func fibonacci(n int) int {
if n < 2 {
return n
}
return fibonacci(n-2) + fibonacci(n-1)
}
func main() {
fmt.Printf("%d\t", fibonacci(10))
}
输出55