//第一种方式
func GetFinonacci(n int){
var arr []int
arr = append(arr, 1)
arr = append(arr,1)
for i := 2; i<n; i ++{
arr = append(arr, 0)//动态增长
arr[i] = arr[i-1] + arr[i-2]
}
fmt.Println("GetFinonacci",arr)
}
//第二种递归方式
func GetFinoacciByRecursion(n int){
var arr []int
for I := 0;I<n; I ++{
arr = append(arr, 0)
arr[I] = fibolaqi(I)
}
fmt.Println("GetFinoacciByRecursion:", arr)
}
//斐波拉契数列 Fn = Fn-1 + Fn-2
func fibolaqi(n int) int{
if n <=1 {
return 1
}else{
return fibolaqi(n-1) + fibolaqi(n-2)
}
}
试代码:
func TestFi(t *testing.T){
fibonacci.GetFinonacci(20)
fibonacci.GetFinoacciByRecursion(20)
}
结果: