對於第二道題目,我們可以認為有乙個函式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 ...