劍指offer 面試題9

2021-07-03 12:12:01 字數 737 閱讀 4637

對於第二道題目,我們可以認為有乙個函式f(),放台階數是n時,有f(n)種跳法,當台階數n-1時有f(n-1)種跳法,以此類推;

那麼f(n)等於多少呢?青蛙第一次跳有兩種可能,要麼跳乙個台階,要麼跳兩個台階。跳乙個台階後還剩下n-1個台階,n-1個台階跳法有f(n-1)種。跳兩個台階後還剩下n-2個台階,n-2個台階跳法有f(n-2)種。

所以,f(n)=f(n-1)+f(n-2);

這就是斐波那契數列了。

#include

using

namespace

std;

long

long fibonacci(unsigned

int n)

; if (n < 2)

return result[n];

long

long one = 1, two = 0;

long

long fibn=0;

for (unsigned

int i = 2; i <= n; i++)

return fibn;

}int main()

擴充套件題就簡單了

f(n)=f(n-1)+f(n-2)+……….+f(1);

=2[f(n-2)+f(n-3)+……….+f(1)];

=2*2[f(n-3)+f(n-4)+……….+f(1)];

等於2的n-1次方。

劍指offer 面試題9

面試題 9 斐波那契數列 題目一 寫入乙個函式,輸入 n,求斐波那契切數列的第 n項。題目二 乙隻青蛙一次可以跳上一級台階,也可以跳上兩級台階,求該青蛙一次跳上乙個 n級的台階總共有多少種跳法。首先我們來看第二題,我們可以假設有乙個台階,青蛙跳法 1種 有兩個台階,青蛙跳法 2種 有三個台階,青蛙跳...

劍指offer 面試題9

題目一 求斐波那契數列第n項 自己所寫 如下 include stdafx.h include long fibonacci unsigned int n return n 2 0 f0 f1 int main return0 雖然知道可以用遞迴實現,但實際寫 卻有些生疏,關鍵是對遞迴不是很熟練。l...

劍指offer面試題7

面試題7 用兩個棧實現佇列 using namespace std template class cqueue 預備知識 佇列 佇列也是一種常見的資料結構 特點是先進先出 fifo 在stl中有stack和queue兩個容器 template class stack 成員函式 empty size ...