每日一练(2):斐波那契数列

Posted by didphp.com

说明

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”

其数值为:112358132134……在数学上,这一数列以如下递推的方法定义:

F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)

实现

计算第 N 个数的值

package algorithm

func FibonacciSequence(n int) int {
    if n == 1 || n == 2 {
        return 1
    }
    total := 0
    preNum := 0
    theFirstTwoNum := 0
    for i := 1; i <= n; i++ {
        if i == 1 {
            preNum = 1
            total += 1
        } else if i == 2 {
            theFirstTwoNum = 1
            total += 1
        } else {
            total = preNum + theFirstTwoNum
            theFirstTwoNum = preNum
            preNum = total
        }
    }
    return total
}