面試題之斐波那契數列

2021-08-10 03:22:13 字數 832 閱讀 9472

簡介:

斐波那契數列是義大利著名的數學家,他最重要的研究成果是在不定分析和數學論方面,他的斐波那契數列成為世人熱衷研究的問題。

*:面試此題的機率也很大。

特點:

a1,a2已知

a(n)=a(n-1)+a(n-2) n>=3

應用:兔子繁殖問題,樹枝問題,上樓方式問題,蜂房問題,聲音問題,花瓣問題。。。。。

詳解:

樓梯上有n階台階,上樓時可以一步上一階,也可以上2階,編寫演算法計算到第二階共有多少種不同的上樓梯方式。

數學模型:從問題按照習慣,從前向後思考,也就是從第一階開始,考慮怎麼到第二階,第三階....則很難找出問題

的規律;而反過來先思考「到n階有幾種情況」,答案就簡單了,只有兩種情況。

從第n-1 階到第n階

從第n-2階到第n階

int feibonaqie(int n)

return feibonaqie(n - 1) + feibonaqie(n-2);

}

但僅僅就這樣嗎?不,當n>=100時,在執行程式時,電腦會一段時間沒反應,原因是上面程式的函式占用了大量

cpu的資源。所以我們提出了優化方案:

將遞迴轉換為迴圈,當n很大時,可以大大提高效率。

#include#includeusing namespace std;

int feibonaqie2(int n)

else

return fn; }

}int main()

還有其他方法下次總結,不足之處,多多指教。

面試題9 斐波那契數列

方法一 很容易想到的解法是直接使用遞迴。c include stdafx.h include using namespace std long long fibonacci unsigned int n if n 1 return fibonacci n 1 fibonacci n 2 int tm...

面試題9 斐波那契數列

題目一 寫乙個函式,輸入n,求斐波那契數列的第n項,斐波那契數列的定義如下 0 n 0 f n 1 n 1 f n 1 f n 2 n 1 遞迴 long long fibonacci unsigned int n if n 0 n 1 return n return fibonacci n 1 f...

面試題9 斐波那契數列

面試題9 題目 寫乙個函式,輸入n,求斐波那契數列的第n項。很多教科書中的解法 long long fibonacci solution1 unsigned int n 這是從第n項向前計算的方法,很多計算量實際上是重複的。long long fibonacci solution2 unsigned...