09 Fibonacci斐波那契數列

2021-07-14 20:16:29 字數 1112 閱讀 9050

思路:

1.遞迴,會有很多重複的結點,時間複雜度以n的指數方式遞增,所以不可採取

2.為了避免重複計算結點,可以從頭開始計算,即f(0),f(1),f(2),f(3)……f(n)

class solution ;

if(n<2)

return result[n];

int fibnminusone=0;

int fibnminustwo=1;

int fibn=0;

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

return fibn;

}};

跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法。

f(1)=1;

f(2)=f(2-1)+f(2-2)=1+1=2;

f(3)=f(3-1)+f(3-2)=2+1=3;

…….

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

class solution 

return jumpn;

}};

**跳台階

乙隻青蛙一次可以跳上1級台階,也可以跳上2級……它也可以跳上n級。求該青蛙跳上乙個n級的台階總共有多少種跳法.

f(n)=f(n-1)+f(n-2)+f(n-3)+…+f(n-n); //第一步跳一級或者第一步跳兩級或者。。。跳n級

f(n-1)=f((n-1)-1)+f((n-1)-2)+…+f((n-1)-(n-1)); //可以帶入第乙個式子

同理 …….

f(2)=f(2-1)+f(2-2)=1+1=2; //帶入第乙個式子

f(1)=f(1-1)=1; //帶入第乙個式子

f(0)=1; //帶入第乙個式子

可以得到

f(n)=2^m[f(n-m-1)+…+f(0)] //n-m-1=1,m=n-2

=2^(n-2)[f(1)+f(0)]

2^(n-1)

class solution 

};

斐波那契 Fibonacci 數列

實踐證明,尾遞迴 確實比普通遞迴效率高。下面的例子 用 普通遞迴需要10s完成 而用尾遞迴,只用了1s不到 package com.zf.dg 題目 有一種母牛,出生後第三年,開始生育,每年都生一頭 母牛 貌似單性生育,這裡就沒公牛什麼事兒 生出來的小母牛也符合同樣的規律,出生後第三年,開始生 育,...

Fibonacci 斐波那契數列

一 介紹 在數學上,費波那契數列是以遞迴的方法來定義 0 f 0 1 f 1 f f f f f n 2 用文字來說,就是費波那契數列由0和1開始,之後的費波那契係數就是由之前的兩數相加而得出。首幾個費波那契係數是 0,1,1,2,3,5,8,13,21,34,55,89,144,233 oeis中...

斐波那契數列(Fibonacci)

斐波那契數列 無窮數列 1,1,2,3,5,8,13,21,34,55.稱為fibonacci數列。它可以定規地定義為 n 0,1 f n 1 n 1 f n f n 1 f n 2 這是乙個遞迴的關係式,它說明當n大於1時,這個數列的第n項的值,是它前面兩項的和,它用兩個較小的自變數的函式值來定義...