【问题标题】:Sum of even numbers in an Javascript array? [duplicate]Javascript数组中偶数的总和? [复制]
【发布时间】:2014-04-12 05:24:35
【问题描述】:

尝试对斐波那契数列的偶数求和。为什么不将所有数字相加而只使用最后一个数字?如何将所有偶数加在一起? 这是我的代码:

function fibonacciSum(){
    var i;
    var fib = new Array ();

    fib[0] = 0;  
    fib[1] = 1; 
        for(i=2; i<=10; i++){  
            fib[i] = fib[i-2] + fib[i-1]; 
            var number = parseInt(fib[i]);   
            var sum = 0;  
            if (number % 2 == 0) {  
                var result = sum += fib[i];  
                }  
         }  
    console.log(result);   
}

【问题讨论】:

  • 我怀疑这个用户是上面两个问题发帖用户的别名。
  • 其实我是一个不同的人。我看着那些试图解决我的问题。
  • 仅供参考 - 我在发布前 5 分钟发布了与接受的答案相同的答案,你有什么理由接受他的吗?

标签: javascript for-loop sum fibonacci


【解决方案1】:

var sum = 0;

这是在您的循环中在每次迭代时重置sum。它必须在循环之外。

【讨论】:

    【解决方案2】:

    您应该在 for 循环之外声明 sum 和 result。试试这个:

    function fibonacciSum(){
        var i;
        var fib = new Array ();
    
        fib[0] = 0;  
        fib[1] = 1;
        var sum = 0; 
        var result = 0; 
        for(i=2; i<=10; i++){  
            fib[i] = fib[i-2] + fib[i-1]; 
            var number = fib[i]; 
            if (number % 2 == 0) {  
                result = sum += fib[i];  
            }  
         }  
        console.log(result);   
    }
    

    【讨论】:

    • 不需要做 parseInt()。 fib 数组中的元素是整数。
    • 是的,你是对的。谢谢。我更正了。
    【解决方案3】:

    在您的解决方案中,for 循环的每次运行都会使用以下行重置“sum”: var sum = 0;。在循环外设置为 0。

    function fibonacciSum(){
        var i;
        var fib = new Array ();
        fib[0] = 0;  
        fib[1] = 1; 
        var sum = 0;
            for(i=2; i<=10; i++){  
                fib[i] = fib[i-2] + fib[i-1]; 
                    var number = parseInt(fib[i]);    
                    if (number % 2 == 0) {  
                        var result = sum += fib[i];  
                    }  
             }  
        console.log(result);   
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多