我希望我的函数使用递归打印总和
function sumOf(num){
if(num == 1 ) return 1;
console.log("we are seeing decrement",num--)
return num + sumOf(num--);
}
console.log(sumOf(6))
输出:-
we are seeing decrement 6
we are seeing decrement 5
we are seeing decrement 4
we are seeing decrement 3
we are seeing decrement 2
16
我得到错误的输出为什么?
正确输出:- 21
function sumOf(num){
if(num == 1 ) return 1;
return num + sumOf(num--);
}
console.log(sumOf(6))
输出:-
RangeError: Maximum call stack size exceeded
at sumOf (C:\Users\mdvenkat\Desktop\dataStructures and algortherms\recurssion_2.js:4:18)
at sumOf (C:\Users\mdvenkat\Desktop\dataStructures and algortherms\recurssion_2.js:4:18)
at sumOf (C:\Users\mdvenkat\Desktop\dataStructures and algortherms\recurssion_2.js:4:18)
at sumOf (C:\Users\mdvenkat\Desktop\dataStructures and algortherms\recurssion_2.js:4:18)
at sumOf (C:\Users\mdvenkat\Desktop\dataStructures and algortherms\recurssion_2.js:4:18)
at sumOf (C:\Users\mdvenkat\Desktop\dataStructures and algortherms\recurssion_2.js:4:18)
at sumOf (C:\Users\mdvenkat\Desktop\dataStructures and algortherms\recurssion_2.js:4:18)
为什么现在我收到 RangeError ,日志语句和递归之间是否有任何链接
注意:-我知道如果我们将 num-- 更改为 num-1 它将起作用,但我想要以下错误的原因(相同的代码,但只删除了控制台日志)