题解 | 斐波那契数列

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param n int整型
 * @return int整型
 */
function Fibonacci(n) {
    // write code here
    if (n <= 0) return 0; // 如果 n 小于等于 0,返回 0(根据题目描述,n 是正整数,这里可以省略)
    if (n === 1 || n === 2) return 1; // fib(1) = 1, fib(2) = 1

    let a = 1,
        b = 1; // 初始化 fib(1) 和 fib(2)
    let result = 0;

    // 从 3 开始迭代计算
    for (let i = 3; i <= n; i++) {
        result = a + b; // fib(n) = fib(n-1) + fib(n-2)
        a = b; // 更新 fib(n-2)
        b = result; // 更新 fib(n-1)
    }

    return result;
}
module.exports = {
    Fibonacci: Fibonacci,
};

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务