一列數的規則如下: 1、1、2、3、5、8、13、21、34...... 求第30位數是多少, 用遞迴演算法實現。
view code
public第乙個月有一對剛誕生的兔子 第兩個月之後它們可以生育 每月每對可生育的兔子會誕生下一對新兔子 兔子永不死去 假設在n月有新生及可生class
mainclass
public
static
intfoo(
inti)
}
育的兔子總共a對,n+1月就總共有b對。在n+2月必定總共有a+b對:因為在n+2月的時候,所有在n月就已存在的a對兔子皆已可以生育並誕下a對後
代;同時在前一月(n+1月)之b對兔子中,在當月屬於新誕生的兔子尚不能生育。 斐波那契數列又因數學家列昂納多·斐波那契以兔子繁殖為例子而引入,
故又稱為「兔子數列」。
我在紙上畫了半天也沒能理解,於是我就把兔子換成了人。
(數列中的第乙個1為張先生,第二個1為張先生娶了李小姐,2為他們結婚了,3為第一年)
第一年 :張+李=趙(張先生和李小姐生了個兒子叫趙,於是乎一共就有了3口人)
第二年:張+李=錢,趙+朱(張先生和李小姐生了個兒子叫錢,他們第一年生的兒子娶了個老婆叫朱,一共5口人)
第三年:張+李=孫,趙+朱=魯,錢+樂(張先生和李小姐生了個兒子叫孫,趙先生和朱小姐生了個兒子叫魯,錢先生娶了個老婆叫樂一共8口人)
第四年:張+李=周,趙+朱=韋,錢+樂=計,孫+梅,魯+丁(張先生和李小姐生了個兒子叫周,趙先生和朱小姐生了個兒子叫韋,錢先生和樂小姐生了個兒子叫計,孫前生娶了個老婆叫梅,魯先生娶了個老婆叫丁,一共13口人)
第五年:張+李=吳,趙+朱=昌,錢+樂=於,孫+梅=芮,魯+丁=寧,周+葉,韋+聞,計+溫(張先生和李小姐生了個兒子叫吳,趙先生和朱小姐生
了個兒子叫昌,錢先生和樂小姐生了個兒子叫于,孫先生和梅小姐生了個兒子叫芮,魯先生和丁小姐生了個兒子叫寧,周先生娶了個老婆叫葉,韋先生娶了個老婆
聞,計先生娶了個老婆叫溫,一共21口人)
這樣理解我就能理解上面的演算法實現了
對兔子數列的理解
斐波那契在1202年寫成了著作 計算之術 中提出了這樣乙個問題 在第乙個月有一對剛出生的小兔子,在第二個月小兔子變成大兔子並開始懷孕,第三個月大兔子會生下一對小兔子,並且以後每個月都會生下一對小兔子。如果每對兔子都經歷這樣的出生 成熟 生育的過程,並且兔子永遠不死,那麼兔子的總數是如何變化的?通過下...
我理解的遞迴
1.在遞迴呼叫工作棧建立之後,各層遞迴所涉及到的變數都已經壓入到棧中,每次呼叫一次函式,系統記憶體機制就會以棧的方式分配該遞迴函式所需的記憶體空間,同時,每層函式得出的結果會暫時儲存在這個棧的空間中 2.當整個遞迴函式在遇到已if 為標誌的條件結束標誌的時候,函式不需要繼續執行該函式,系統停止記憶體...
我理解的原型
js中幾大疑難雜症 原型 通常提到原型都會提到繼承 我覺得原型就是為了繼承啊 比如你想給你 裡的乙個物件擴充套件乙個通用的方法 就可以寫成 array.prototype.func function 這樣就給陣列物件新增了乙個func方法 這樣 var arr 1,2,3 arr.func 就跟陣列...