Fibonacci number是這樣的數(shù)列:
f(0) = 0, f(1) = 1,
f(n) = f(n-1) + f(n-2) (n 》=2)
下面給出幾種求解方法
1) 使用函數(shù)遞歸方法。
這個是最容易想到的方法
但是這個比較花時間,因為有很多重復計算(重復的函數(shù)調(diào)用)。
在我的電腦上,計算f(45)的值,用了10.256秒的時間。
2) 把計算的中間結果保存下來,避免重復計算。
用這種方法計算f(45),僅僅用了 0.000017秒的時間, 時間降低了百萬倍!
3) 第二種方法,使用了較多的內(nèi)存保存中間結果。還可以進一步減少內(nèi)存的使用。
所需時間和 2)差不多。
4)不使用函數(shù)遞歸,使用迭代的方法
5)
6)
-
算法
+關注
關注
23文章
4710瀏覽量
95415 -
C語言
+關注
關注
180文章
7632瀏覽量
141818
發(fā)布評論請先 登錄
10個經(jīng)典的C語言面試基礎算法及代碼
六個帶有WiFi模塊的單片機跟一個配置為AP模式的單片機通信,六個之間并不通信
10個經(jīng)典的C語言面試基礎算法及代碼
關于10大C語言基礎算法
sd可以實現(xiàn)六個面對應六個不同文件夾sd音樂嗎?
六個子目錄的作用
六個有關RoHS的檢測方法標準
PROTEL DXP的六個實驗指導教程

評論