收獲 發現不是自己遞歸不行 是自己數學不行 還是好好學學數學實在
- 先找規律 自己寫的時候上來就是堆代碼 結果把自己搞得一頭霧水
0+1=1 //1
1+2=3 // 1+1=2
3+3=6 // 2+1=3
6+4=10 // 3+1=4
10+5=15
15+6=21
21+7=28
28+8=36
- 這里的每個算式的第二個數字都是前一個算式的相同位置數字+1; 第一個數字就是之前算式的和
- 所以將之前算式的和加上前一個算式中的第二個數字然后加1
示例代碼
function getSum(num, num1) {
let sum = num + num1 //num1對應的是每個算式中的第二個數字 sum就是算式的和
if (num1 + 1 <= 100) { //如果第二個數字沒有達到100就是還沒加到100 然后將計算的數字重新求和 以此遞歸 直到 滿足100的時候讓數字返回
return getSum(sum, num1 + 1) //剛開始我對這里的return有點疑問 為什么要一直return呢 其實打印sum可以打印出來結果 但是外部如果想要獲取結果就要層層return 畢竟 這里調用了很多次求和函數 每一層都要return 才能將結果返回出去
} else {
return (sum)
}
}
getSum(0,1)