【问题标题】:Javascript Fib series test case failsJavascript Fib 系列测试用例失败
【发布时间】:2020-11-01 15:52:39
【问题描述】:

我正在尝试为 Javascript 斐波那契系列完成这项作业。该逻辑适用于输入 5 和 6。但 8 的测试用例失败。

function fibonacciSequence(input) {
    //Type your code here.
        var i = 0;
    var fib = [];
    fib[0] = 0;
    fib[1] = 1;
    
    var out ="0"+ "" +"1";
    
    for (i = 2; i <=input; i++) {
        fib[i] = fib[i-2] + fib[i-1];

    out = out+ ""+ fib[i];
    console.log("i is" + i + " out is" + out);
        
    }  


    return out;
}

我不知道出了什么问题..

【问题讨论】:

    标签: javascript fibonacci


    【解决方案1】:

    似乎事情只是因为您将项目添加到字符串而变得混乱。由于out + "" + fib[i] 之间没有空格,我认为这会弄乱格式。一旦我有了空格,它似乎就可以正常工作了,一个两位数的数字不会与这样的字符串混淆。

    function fibonacciSequence(input) {
        var fib = [];
        fib[0] = 0;
        fib[1] = 1;
        let out = ""
        out+= ` ${0} `
        out+= `${1}`
        for (let i=2; i <=input; i++) {
            fib[i] = fib[i-2] + fib[i-1];
            out+= ` ${fib[i]}`
        }
        return out;
    }

    【讨论】:

    • 对不起,我错过了包含预期结果.. fibonacciSquenence(5) 应该返回“0 1 2 3 5”。当我使用输入 8 运行它时,输出(标准输出)显示 0 1 1 2 3 5 8 1 3 2 1
    • 看起来问题是字符如何存储在数组中,最后两个数字(13 和 21)是 2 位数字。所以它们是分开打印的
    【解决方案2】:

    您正在将输入(看起来这可能是您想要停止的数字)与 i(加或减一点)是列表中的数字数量进行比较。您可能想要比较 fib[i] 或类似的输入来决定是否终止循环。

    编辑:如果这是错误的,并且您确实希望输入是列表中的数字数量,那么您可以在最后加入 fib:

    function fibonacciSequence(input) {
        //Type your code here.
        var i = 0;
        var fib = [];
        fib[0] = 0;
        fib[1] = 1;
        
        //var out ="0"+ "" +"1";
        
        for (i = 2; i <=input; i++) {
            fib[i] = fib[i-2] + fib[i-1];
    
        //out = out+ ""+ fib[i];
        //console.log("i is" + i + " out is" + out);
            
        }  
    
    
        return fib.join(' ');
    }
    
    for(let j = 0; j < 9; j++)
      console.log('input: ' + j + ' :: ', fibonacciSequence(j));

    除非...我的判断有误,而@Grant Herman 的回答已经达到了你想要的效果?

    【讨论】:

      猜你喜欢
      • 2011-03-29
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多