Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript fibonacci-RangeError:when base(n==1)或(n==0),但if(n<;=)则不是。为什么?_Javascript - Fatal编程技术网

JavaScript fibonacci-RangeError:when base(n==1)或(n==0),但if(n<;=)则不是。为什么?

JavaScript fibonacci-RangeError:when base(n==1)或(n==0),但if(n<;=)则不是。为什么?,javascript,Javascript,这很好: function fibonacci(n) { if (n <= 1) { return n; } else { return fibonacci(n - 1) + fibonacci(n - 2); } } console.log('fibonacci ' + fibonacci(7)); 它应该适用于n==1 | n==0 function fibonacci(n) { if (n == 1 || n==0) { return n;

这很好:

function fibonacci(n) {
  if (n <= 1) {
    return n;
  } else {
    return fibonacci(n - 1) + fibonacci(n - 2);
  }
}
console.log('fibonacci ' + fibonacci(7));

它应该适用于
n==1 | n==0

function fibonacci(n) {
  if (n == 1 || n==0) {
    return n;
  } else {
    return fibonacci(n - 1) + fibonacci(n - 2);
  }
}
对于
n==1
它不起作用
因为对于n=2,第二次调用将针对
n-2
,即
0
,这是您没有处理的您需要同时检查
n==1 | | n==0
,因为您使用两个值进行调用,
n-1
n-2

函数斐波那契(n){
如果(n==1 | | n==0){
返回n;
}否则{
返回斐波那契(n-1)+斐波那契(n-2);
}
}

log('fibonacci'+fibonacci(7))好的,我明白了:)谢谢!我用两个数字进行调用。我做了一些研究,所以我想补充一下:“当递归函数(一个调用自身的函数)没有退出点时,会发生堆栈溢出。”来源:
function fibonacci(n) {
  if (n == 1 || n==0) {
    return n;
  } else {
    return fibonacci(n - 1) + fibonacci(n - 2);
  }
}