本文介绍了如何在JavaScript中使用递归实现斐波那契数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试在javascript中玩递归.我为斐波那契数列编写了一个函数.但是,仅当参数为0时有效

I tried playing around with recursion in javascript. I wrote a function for the Fibonacci sequence. However, if only works if the argument is 0

fib = (x)=>{
    if (x == 0 || x ==1) {
        return 1
    } else {
        return fib(x-1) + fib(x+1)
    }
}

它返回1表示1,但大于0的数字表示错误超出了最大调用堆栈大小

It returns 1 for 1, but a number above 0 I get the error maximum call stack size exceeded

推荐答案

您需要倒数第二次迭代的值,而不需要前面的迭代.

You need the value of the second last iteration, no an iteration ahead.

也请在这里看看:斐波那契编号.

const fib = x => {
    if (x === 0 || x === 1) {
        return 1;
    }
    return fib(x - 2) + fib(x - 1);
};

console.log(fib(7));

这篇关于如何在JavaScript中使用递归实现斐波那契数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 23:23