斐波那契數列及系列問題

2021-08-01 15:57:07 字數 807 閱讀 3380

斐波那契數列,即 0,1,1,2,3,5,8...,從第三個數開始,數值為前兩個數之和。對於該數列,求解第n項只需要通過迭代即可完成。

public class solution 

return result;}}

}

從理解上來說,由數列的性質可以看出f(n)=f(n-1)+f(n-2),因此還可以遞迴求解。

public class solution 

}

不過,通過遞迴求解會導致一系列的問題,首先就是其無法求解n較大的情況,當n較大時,會導致棧溢位。然後就是效率低下的問題。顯然第一種求解方式更加合適。

雖然該遞迴求解的方法存在著不足,這種遞迴的思想卻是有助於對很多問題進行求解。例如跳台階問題,矩形覆蓋問題:

跳台階問題:乙隻青蛙一次可以跳一級台階,也可以跳兩級台階。問跳上n級台階有多少種跳法?

這個問題可以用遞迴的思想求解。由於青蛙一次只能跳一級或二級台階,因此對於n級台階的跳法f(n),f(n)=f(n-1)+f(n-2),由此可以通過求解斐波那契數列第n項的方法來求解。

矩形覆蓋問題:用n個2*1的小矩形覆蓋1個2*n的大矩形,求有多少種覆蓋方法?

這個問題同理,對於n等於1與2來說,很容易求解出答案分別為1與2。因此從n>2開始,對於n=i且i>2,由於i與i-1相比只多了乙個2*1,因此n=i時所包含的解的數量包括了n=i-1的解的數量;除此之外,由於n>2,存在著兩個矩形併排豎著排列的情況,因此n=i的解還應當包含n=i-2的解,即n=i-2的每個解都在最上端新增兩個豎著的小矩形這種情況,所以f(i)=f(i-1)+f(i-2);

斐波那契數列 斐波那契數列python實現

斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...

迴圈斐波那契數列 斐波那契數列應用

什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...

斐波那契數列

1 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。斐波那契數列的定義如下 輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入包括乙個整數n 1 n 70 輸出 對應每個測試案例,輸出第n項斐波那契數列的值。2 這是九度上的乙個題,要求時間限制1秒,整數的...