递归 0到100求和

收获 发现不是自己递归不行 是自己数学不行 还是好好学学数学实在

  1. 先找规律 自己写的时候上来就是堆代码 结果把自己搞得一头雾水
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)
posted @ 2020-11-03 10:53  阿臻  阅读(675)  评论(0编辑  收藏  举报