我正在尝试使用JavaScript中的递归将两个数字相加。到目前为止,我已经想出了
function sum(x, y) {
if (y != 0) {
return sum(x + 1, y - 1);
} else {
return x;
}
}它适用于所有正数,但不适用于负整数。我得到一个超过最大调用堆栈大小的错误。
我在Js中搜索了一个简单的递归函数,但只在C和其他我不太熟悉的语言中找到了它们。我已经为Fibonacci和一个数组中的数字找到了一个,但我只想要任何两个数字,而不是一个数组。
发布于 2016-04-01 09:50:33
如果y值最初是负的,那么递归不会因为您的条件语句而停止。为什么不使用if语句来检查y Val是否大于或小于0。然后,如果y大于0,则可以递减y;如果y小于0,则可以递增(要获得相同的效果,需要在y<0的情况下递减x)。因此,递归将停止。
https://stackoverflow.com/questions/36346652
复制相似问题