문제

Trying to sum the even numbers of the fibonacci sequence. Why is it not summing all of the numbers together and just using the last number? How can I sum all of the even numbers together? Here's my code:

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);   
}
도움이 되었습니까?

해결책 2

You should declare sum and result outside for loop. Try this:

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);   
}

다른 팁

var sum = 0;

This is in your loop resetting the sum on every iteration. It has to be outside the loop.

In your solution, each run of the for loop resets "sum" with the line: var sum = 0;. Set it to 0 outside the loop.

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);   
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top