Hi,
I have the below code for Sum All Odd Fibonacci Numbers problem and it seems to work for every number except the last one. Could someone tell me where I have gone wrong?
Here’s my code:
function sumFibs(num) {
var i = 1;
var base = [1,1];
while(i<=base.length){
var nextDigit = base[i]+base[i-1];
if(nextDigit < num){
base.push(nextDigit);
}
i++;
}
var sum = base.filter(function(x){return x % 2 !== 0;});
return sum.reduce(function(a,b){return a+b;});
}
sumFibs(75025);
Thanks!
I solved it like this,
function sumFibs(num) {
var total = 0; // var to hold the total of all the odd numbers
var sequence = [1]; //array to hold the odd numbers in the fibonacci sequence add the initial [1]
var a = 0, b = 1, f = 1; // variables to run the fibonacci sequence
//loop through and get all the fibonacci numbers between 1 and num
for (var i = 1; i <= num; i++) {
f = a + b;
a = b;
b = f;
//if f is an odd number, and f is less than or equal to num push it to the
//sequence array
if (f % 2 !== 0 && f <= num) {
sequence.push(f);
}
}
//console.log(sequence);//test
//total all the numbers in the sequence array
for (i = 0; i < sequence.length; i++) {
total += sequence[i];
}
// num = total or just return total
num = total;
return num;
}
Mine does seem rather basic compared to yours.