收获 发现不是自己递归不行 是自己数学不行 还是好好学学数学实在
- 先找规律 自己写的时候上来就是堆代码 结果把自己搞得一头雾水
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)