递归函数是指在函数的定义中调用函数自身的函数。它通常用来解决可以分解为更小、相似子问题的问题,例如计算阶乘、斐波那契数列、树的遍历等。
1、递归函数计算1加到100示例:
function sumToN(current, target, accumulator = 0) {
if (current > target) {
return accumulator; // 当前数字超过目标数字时,返回累积和
} else {
return sumToN(current + 1, target, accumulator + current); // 递归调用
}
}
// 调用函数,计算从1加到100的和
const totalSum = sumToN(1, 100);
console.log(totalSum); // 输出结果应该是 5050
方法传参分别是:
- current 是当前处理的数字。
- target 是我们想要加到的最终数字,在这里是100。
- accumulator 是累加器,用来保存从1加到当前数字的总和。初始值设为0。
详解:当 current 超过 target 时,递归停止,函数返回累积的和。在每次递归调用中,我们将 current 加到 accumulator 上,并将 current 增加1,然后再次调用 sumToN 函数。
备注:这个递归函数可以计算任意正整数的累加和,只需将 target 参数设置为所需的数字即可。但是,由于JavaScript的调用栈大小限制,如果 target 设置得非常大,可能会导致栈溢出错误。在实际应用中,对于大范围的