斐波那契 Fibonacci 數列

2021-06-09 11:44:29 字數 938 閱讀 6855

實踐證明,尾遞迴 ,確實比普通遞迴效率高。

下面的例子 ,用 普通遞迴需要10s完成 , 而用尾遞迴,只用了1s不到

package com.zf.dg;

/** * 題目

* 有一種母牛,出生後第三年,開始生育,每年都生一頭

母牛(貌似單性生育,這裡就沒公牛什麼事兒);生出來的小母牛也符合同樣的規律,出生後第三年,開始生

育,每年都生一頭母牛;該種母牛是永生的,而且永遠擁有生育能力,生命不止,生育不止,生生不息。第一

年時,只有一頭母牛。請問第n年時,共有母牛多少頭?

規律如下: 第n年的數量 = 第n-1年牛的數量 + 第 n -2 年牛的數量

1 12 1

3 24 3

5 56 8

*/public class test2 else

} /**

* 將普通樹形遞迴變成尾遞迴

* 從第 current 年一直計算 累加 到第n年

* @param last 上一年牛的數量

* @param result 當前年的牛的數量

* @param current 當前第幾年

* @param n 要計算的年數

* @return

*/public static int fun2(int last , int result , int current , int n)else if(current == n)

return result ;

else }

/*** 將上面的方法包裝

* @param n

* @return

*/public static int fun3(int n )

public static void main(string args)

}

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中...

斐波那契數列(Fibonacci)

斐波那契數列 無窮數列 1,1,2,3,5,8,13,21,34,55.稱為fibonacci數列。它可以定規地定義為 n 0,1 f n 1 n 1 f n f n 1 f n 2 這是乙個遞迴的關係式,它說明當n大於1時,這個數列的第n項的值,是它前面兩項的和,它用兩個較小的自變數的函式值來定義...

Fibonacci數列(斐波那契數列)

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