用遞迴求階乘與斐波納契數列

2021-04-19 22:28:20 字數 604 閱讀 2732

階乘: factorial

斐波納契數列: fibonacci

階乘計算條件: 當 n=0 時 n! =1;當 n>0 時 n! = n*(n-1)!

例項:5! = 5 * 4 * 3 * 2 * 1

c#語言描述:

static int factorail(int n)

斐波納契數計算條件:當 n <= 1 時結果為1;當 n>1 時結果為 f(n-1) + f(n-2)。其中n是在斐波納契數列中的位置,從工作出發 0 開始,如下所示, n=5 的值為 8

例項:1,1,2,3,5,8,13,21,34...

c#語言描述:

static int fabonacci(int n)

遞迴之我見

每呼叫一次遞迴方法就會另開闢一塊記憶體空間,儲存方法中所有變數的值,如果遞迴的次數較多,會占用大量記憶體空間。

在開闢空間時編譯器將有一些計算,從而將影響演算法的效能。

但是遞迴方法精簡,可以編寫很少的**完成複雜的功能。

以上兩例中,階乘用遞迴比斐波納契數列效能好得多

在斐波納契數列中,一次計算將呼叫兩次方法,並且第二次呼叫時,又要根據n的大小進行遞迴呼叫,所以又佔空間,又佔時間。

斐波納契數列

f 1 0 f 2 1 f n f n 1 f n 2 斐波納契數列決定審美和諧性 800年前,義大利的數學家李奧納多 斐波那契出版了驚世之作 算盤書 在 算盤書 裡,斐波納契提出了著名的 兔子生兔子的問題 有乙個人把一對兔 子放在四面圍著的地方。假定每個月一對兔子生下另外一對。而這新的一對在二個月...

斐波納契數列

斐波納契數列又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 此本章通過多種方式實現斐波納契數列 第一種 for 迴圈實現 a,b 0,1 for i in ...

python斐波納契數列

fibonacci series 斐波納契數列 兩個元素的總和確定了下乙個數 a,b 0,1 while b 10 print b a,b b,a b fibonacci series 斐波納契數列 兩個元素的總和確定了下乙個數 a,b 0,1 while b 1000 if a b 1000 pr...