演算法(1)斐波那契數列

hard_man發表於2019-04-08

1.0 問題描述

實現斐波那契數列,求第N項的值

2.0 問題分析

  1. 斐波那契數列最簡單的方法是使用遞迴,遞迴和查表法同時使用,可以降低複雜度。
  2. 根據數列特點,同時進行計算的數值其實只有3個,所以可以使用3個變數迴圈遞進計算結果。
  3. 3個變數可以簡化為2個變數。

3.0 程式碼實現

3.1使用swift實現

func fbnq(_ n: Int) -> UInt64{
    if n < 0 || n > 92 {
        return 0;
    }
    var p: UInt64 = 0, c: UInt64 = 1;
    for _ in 0 ..< n {
        c = c + p;
        p = c - p;
    }
    return c;
}
複製程式碼

3.2使用js實現

function fb(n){
    let p = 0, c = 1;
    for(let i = 0; i < n; i++){
        c = p + c;
        p = c - p;
    }
    return c;
}
複製程式碼

4.0 複雜度分析

複雜度為 O(n)

相關文章