当前位置:首页 > Web开发 > 正文

代码先不进行计算

2024-03-31 Web开发

标签:

递归实现: 求n个数字的和

求n个数字的和, 5 计算1 + 2 + 3 + 4 + 5 var sum = 0; for (var i = 1; i <= 5; i++) { sum += i; } console.log(sum);

递归实现:求n个数字的和 n=5---> 5+4+3+2+1

// //函数的声明 function getSum(x) { if (x == 1) { return 1; } return x + getSum(x - 1); } //函数的挪用 console.log(getSum(5));

画图理解:

技术图片

执行过程:

代码执行getSum(5)--->进入函数, 此时的x是5, 执行的是5+getSum(4), 此时代码期待

此时5+getSum(4), 代码先不进行计算, 先执行getSum(4), 进入函数, 执行的是4+getSum(3), 期待, 先执行的是getSum(3), 进入函数, 执行3+getSum(2), 期待,

先执行getSum(2), 进入函数, 执行 2+getSum(1); 期待, 先执行getSum(1), 执行的是x==1的判断,return 1,

所以, 此时getSum(1)的功效是1, 开始向外走出去

2+getSum(1) 此时的功效是:2+1

执行:

getSum(2)---->2+1

3+getSum(2) 此时的功效是3+2+1

4+getSum(3) 此时的功效是4+3+2+1

5+getSum(4) 此时的功效是5+4+3+2+1

功效:15

JS高级---递归案例---递归实现: 求n个数字的和,,执行过程理解

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31686.html