遞歸函數:在函數內部本身調用本身的函數
遞歸能作循環能作的全部事情
循環作不了的 遞歸也能作
遞歸寫 1+2+3+...+n;數組
方法:函數
1.找臨界值:無須計算,便可得出的值:-退出遞歸
2.這一次和上一次運算的關係:+n
3.假設當前函數能夠運行,根據上一次調用自身運算的結果,寫出此次的運算結果
addSum() addSum(49) 1+2+..+50 = addSum(49)+50
->推斷出 第n次運算與第n-1次運算的關係 addSum(n) = asddSum(n-1)+n;
一個標準的遞歸函數 必須有參數 有返回值blog
function addSum(n){
if(n==1){
return 1;
}
return addSum(n-1)+n
}
console.log(addSum(100));遞歸
輸入一個n,打印n個hello world 使用遞歸io
兔子繁殖問題,設有一對新生兔子,從第四個月開始他們每一個月月初
都生一對兔子,新生的兔子從第四個月月初開始又每一個月生一對兔子,
按此規律,並假定兔子沒有死亡,n(n<=20)個月月末共有多少對兔子?console
這個邏輯性比較強,之後本身再慢慢研究,有點難理解。function
有個規律,也是頗有名的斐波那契數列,又稱黃金分割數列,由於以‘兔子繁殖’而引入,因此也稱‘兔子數列’。循環
這個大體規律以下:方法
數組規律: 1 2 3 4 5 6 7 8 9 10 月份
兔子: 1 1 1 2 3 4 6 9 13 19 兔子數量
// 斐波那契數列 f(n) = f(n-1)+f(n-3)im
上代碼