C 裡Fibonacci簡單點的演算法

2023-01-26 23:15:09 字數 2803 閱讀 6048

1樓:馮小剛

求fibonacci數最好的演算法當然是遞迴演算法啦,你是不是對遞迴演算法很頭疼才說要「簡單點的演算法」的?

我把**寫在這,你自己慢慢揣摩吧!

#include

using namespace std;

int swap(int n)

int main()

我這麼給力,你把我設為吧!

用c++遞迴演算法與vector如何實現fibonacci

2樓:方田

//遞迴。

#include

using namespace std;

unsigned long int fibonacci(unsigned short n)//實現n個斐波那契數。

int main()

c++簡單的遞迴函式設計(斐波那契數列)

用c++求fibonacci數

3樓:寧水清無魚

斐波那契數列?

#include

void fibonacci(int); 宣告斐波那契函式void main()

void fibonacci(int a) /定義函式cout<

4樓:呼叫南瓜

不知道,其實我是來湊字數的嘻嘻嘻= =

求fibonacci數列演算法,並比較。(遞迴+非遞迴)

我想問下fibonacci數列的下面這段c++高效演算法的理解?

5樓:匿名使用者

(1)只要n+1就夠。

(2)memset(t,0,(n+2)*4); 此句將t數值各元素全部清零,x≥2時 t[x]初始值全為0

t[x]!=0 表示已經計算過 ,可直接返回t[x]==0 表示沒有計算過,需要調遞推過程(3)本段程式算僅能計算前40個fibonacci數,因為第40個fibonacci已超過了c++整數能表示的範圍。

6樓:網友

你這演算法是從哪來的啊?一點都不高效。

這個就是遞迴,會佔用大量資源。

其實如果你想得到fibonacci數列每個位置的值的話,從前往後推更好。

t[0]=1;

t[1]=1;

for (int i=2; i

7樓:灰晞鬱

表示我也覺得n+1的空間夠了,不知多的那個目的為何……關於問題二,這就是這個程式的高效所在了,這是一種可以被稱作是動態規劃的思想。

你說求t[2]的時候,此時沒有值,那麼陣列初始化後t[2]應該初始化為0。然後遞迴呼叫下面的t[x]=fibonacci(x-1,t)+fibonacci(x-2,t);才能算t[2]。

而斐波拉切數列的普通的遞迴演算法的問題在於,有很多相同的呼叫需要重複計算多次,比如要求f(5)時,f(5) =f(4) +f(3),而遞迴時f(4) =f(3) +f(2),又要再算一次f(3)了。這個程式高效在,當計算過一個f(n)的值後,會將其儲存在陣列t中,從而下次遞迴時再要用到這個f(n)時,就可以直接取出而不需要再次遞迴了。

8樓:ye放任

問題一。 n+1真心夠了已經。

問題二。 如果t[x]!=0 .

表示我已經通過遞迴計算計算到了所需要的值。返回這個值。如果沒有。

那麼我用前兩個數字相加產生這個數。然後繼續進行迴圈。一開始整個t每個值都是0.

因為經過了memset

c++中的fibonacci

9樓:網友

這是迭代法。

這兩句就是個傳遞,num1和num2相當於兩個臨時儲存單元num2+=num1; 實現的是fn= fn-1 + fn-2num2 num2 num1

num1=num2-num1 這一句是實現fn-1 = fn - fn-2

就是上表中第二位的數字等於第一位減第三位。

也相當於num1也往左推進一位。

最後的fn就是num2的值了。

10樓:網友

num2+=num1; num2=num2+num1初始num2=2,此時變為3

num1=num2-num1;num1替換原來的num2 初始為1 此時變為2

11樓:匿名使用者

輸出前2個數的和。(從第三個開始)

輸出數列為2,3,5,8,13...

12樓:匿名使用者

這兩句就是個傳遞,num1和num2相當於兩個臨時儲存單元num2+=num1;

num2 num2 num1

num1=num2-num1 這一句是實現fn-1 = fn - fn-2

就是上表中第二位的數字等於第一位減第三位。

也相當於num1也往左推進一位。

最後的fn就是num2的值了。

用遞迴演算法實現斐波那契數列1,1,2,3,5,8,13……的前20項,每輸出5項一換行,用c++

求教c++中fibonacci遞迴順序的細節理解

13樓:彎彎的圓圓

int fib(int n) 這樣的樸素演算法 複雜度是指數級的, 問題在於 大量的重複計算 所以可以用遞推或是記憶化來優化 下面是記憶化的遞迴求fibonacci數 int f[50],done[50]; i...

成語解釋,簡單點的,成語解釋10個,簡單點的

1.赴湯蹈火 形容不避艱險,奮勇向前。湯,開水。蹈,踩。2.衝鋒陷陣 向敵人衝鋒,深入敵人陣地。形容作戰英勇。3.視死如歸 把死看作像回家一樣。形容不怕死。歸 回家。4.奮不顧身 奮勇向前,不顧生命。5.兢兢業業 形容做事謹慎 勤懇。6.勤勤懇懇 勤勞而踏實。7.先人後己 考慮事情把別人放在前面,把...

簡單點的養胃湯

把豬肚切成一片片的,雞可以整隻。然後把黑椒 豬肚 雞一起放進鍋裡煲,要煲大概3到4個小時就可以了。注意 盛湯的時候不要攪到底,底有黑椒,會很辣 黑椒可以撈上來晾乾,下次煲湯更好。紫菜南瓜湯 用料 老南瓜100克,紫菜10克,蝦皮20克,雞蛋1枚,醬油 豬油 黃酒 醋 味精 香油各適量。做法 先將紫菜...

臧克家的簡介簡單點,臧克家的簡介

臧克家 1905.10.08 2004.02.05 漢族。山東濰坊市諸城人,曾用名臧瑗望,筆名孫荃 何嘉,是詩人聞一多先生的高徒。被譽為 農民詩人 1932年開始發表新作,以一篇 老馬 成名。1933年他的第一部詩集 烙印 出版,得到聞一多 茅盾等前輩的好評 次年,詩集 罪惡的 問世,從此蜚聲詩壇。...