问题:
实现一个斐波那契数列
名词解释:斐波那契数列
- Fibonacci sequence 指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……
- 在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
代码实现:
package main
import "fmt"
// 问题:实现一个菲波那切数列
// 名词解释:菲波那切数列
// Fibonacci sequence 指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……
// 在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
// 代码实现:
func main() {
// 直接输出
i := 0
for i <= 10 {
fmt.Println(Fibonacci(i))
i++
}
// 放到数组里
fmt.Println(FibonacciArr(10))
}
func Fibonacci(n int) int {
if n == 0 || n == 1 {
return n
}
return Fibonacci(n - 1) + Fibonacci(n - 2)
}
func FibonacciArr(n int) []int {
arr := make([]int, n + 1)
for i := 0; i <= n; i++ {
if i == 0 || i == 1 {
arr[i] = i
} else {
arr[i] = arr[i - 1] + arr[i - 2]
}
}
return arr
}