golang 实现斐波那契数列

问题:

实现一个斐波那契数列

名词解释:斐波那契数列

  • 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
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容