演算法 Fibonacci(斐波那契數列)相關問題

2022-02-13 05:22:56 字數 1171 閱讀 4960

一、列出fibonacci數列的前n個數

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

namespace

fibonacci

/*需求:列出fibonacci數列的前n個數

*///

方案一:迭代n次,一次計算一項

public

static

void cal(int

n)

else

if (i == 2

)

else}}

//方案二:迭代n/2次,一次計算兩項

public

static

void cal2(int

n)

}

二、求出fibonacci數列第n個數字(遞迴)

namespace

fibonacci

",f(integer));

}/*需求:求出fibonacci數列第n個數字

*///遞迴

public

static

int f(int

n)

}}

三、古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第三個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少?

問題分析:其兔子數目依舊是按1,1,2,3,5…的順序進行排列。其本質仍為斐波那契數列。

解決:按照一中的方案二進行即可。

namespace

fibonacci "

,f1,f2);

console.write(""

);

if (i%2==0

) console.writeline("\n

");f1 = f1 +f2;

f2 = f2 +f1;}}

}}

若後續有相關問題,餘則繼續補充。

願諸位朋友及時指正!

斐波那契Fibonacci 演算法優化

方法一 遞迴法 int fib int n 遞迴法的時間複雜度為o 2 n 遞迴演算法的程式看上去很簡潔,但實際上執行起來卻不如此,深度的遞迴會占用很多棧空間,容易造成溢位。另外在遞迴計算fibonacci數列過程中有很多重複計算。比如,計算f 5 需要計算f 4 f 3 計算f 4 時又要計算一遍...

斐波那契 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中...