大家好,我是一名菜鳥工程師,Chris,今天來到第 24 天,JS 的遞迴和費波那契數列
一個程序或函數,它會呼叫自己本身,重複將問題分解成很多個小問題,並採用相同的方法,一個一個去解決,類似樹狀結構,一層一層堆疊起來
以上圖片取自網路
遞迴以程式碼來說,會像下面這樣運作
function recursive{
// 其他程式碼
recursive()
}
recursive()
舉一個累加的例子
假設有一個數字A
,我們要求1+2+3+4+5
的總和,然而這邊就能運用遞迴方法來解答
function recursive(num) {
if (num == 1) {
return 1;
} else {
const result = recursive(num - 1) + num;
return result;
}
}
console.log(recursive(5)); // 印出 15
費波那契數是以遞迴的方式來定義
以上圖片取自網路
在費波那契數中有一個經典的例子,這邊以乘法為例
function factorial(num) {
if (num <= 1) {
return 1;
} else {
return num * factorial(num - 1);
}
}
console.log(factorial(3)); // 印出 6
1 由於factorial
函數接受參數num
2 接著,要執行檢查的動作
num
小於或等於1
1
num
大於1
num
與num- 1
相乘factorial
函數本身,並將num- 1
作為參數傳遞3 而這個遞迴會一直持續下去,直到num
減少到1
4 最後,遞迴會停止,然後將所有的乘法運算結果相乘,直到計算出最終的結果
5 計算過程如下:
factorial(3)
呼叫 factorial(2)
factorial(2)
呼叫 factorial(1)
factorial(1)
回傳 1
當factorial(2)
時,計算為2 * 1 = 2
當factorial(3)
時,最終結果為 3 * 2 = 6
★總結 : 以上就是關於遞迴和費波那契數列的說明
今天就介紹到這邊,那我們明天見囉~~
明天預計內容:JS 的 AJAX!!!