Go语言 递归函数
Go语言 递归函数
引言
递归函数对于解决数学上的问题是非常有用的,比如计算阶乘,生成斐波那契数列等.
1. 什么是递归函数
2. 数字阶乘
3. 斐波那契数列(Fibonacci)
1. 什么是递归函数
- 递归,就是在运行的过程中调用自己
- 一个函数调用自己,就叫做递归函数
构成递归需具备的条件:
子问题须与原始问题为同样的事,且更为简单; 不能无限制地调用本身,须有个出口,化简为非递归状况处理。
2. 数字阶乘
- 阶乘是基斯顿·卡曼于 1808 年发明的运算符号,是数学术语
- 一个正整数的阶乘(factorial)是
所有小于及等于该数的正整数的积,并且0的阶乘为1 - 自然数n的阶乘写作
n!。
package main
import "fmt"
func factorial(i int) int {
if i <= 1 {
return 1
}
return i * factorial(i-1)
}
func main() {
var i int = 7
fmt.Printf("Factorial of %d is %d\n", i, factorial(i))
}
//输出结果如下:
Factorial of 7 is 5040
3. 斐波那契数列(Fibonacci)
这个数列从第3项开始,每一项都等于前两项之和。
package main
import "fmt"
func fibonaci(i int) int {
if i == 0 {
return 0
}
if i == 1 {
return 1
}
return fibonaci(i-1) + fibonaci(i-2)
}
func main() {
var i int
for i = 0; i < 10; i++ {
fmt.Printf("%d\n", fibonaci(i))
}
}
//输出结果如下:
0
1
1
2
3
5
8
13
21
34
自古英雄多磨难

浙公网安备 33010602011771号