1.0 問題描述
實現斐波那契數列,求第N項的值
2.0 問題分析
- 斐波那契數列最簡單的方法是使用遞迴,遞迴和查表法同時使用,可以降低複雜度。
- 根據數列特點,同時進行計算的數值其實只有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)