scrimba
Solution for day 9 of #javascriptmas
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

Solution for day 9 of #javascriptmas
AboutCommentsNotes
Solution for day 9 of #javascriptmas
Expand for more info
main.js
run
preview
console
function sumOddFibonacciNumbers(num) {
// With Recursion and While
// let sum = 0;
// let fibonacci = 0;

// while (sum < num) {
// let currentFibonacci = fibonacciRecursion(fibonacci);

// if (currentFibonacci % 2 === 1) {
// sum += currentFibonacci;
// }
// fibonacci++;
// }

// return sum;

// With a while loop
let leftOperand = 0;
let rightOperand = 1;
let sum = 1;
let answer = 0;

while(answer < num) {
answer = leftOperand + rightOperand;

if(answer % 2 === 1 && answer < num) {
sum += answer;
}

leftOperand = rightOperand;
rightOperand = answer;
}
return sum;
}

function fibonacciRecursion(fibonacci) {
if (fibonacci < 2) {
return fibonacci;
}
return fibonacciRecursion(fibonacci - 1) + fibonacciRecursion(fibonacci - 2);
}



/**
* Test Suite
*/
describe('sumOddFibonacciNumbers()', () => {
it('returns sum of all odd Fibonnci numbers', () => {
// arrange
const num = 10;

// act
const result = sumOddFibonacciNumbers(num);

// log
console.log("result 1: ", result);

// assert
expect(result).toBe(10);
});

it('returns sum of all odd Fibonnci numbers 2nd example', () => {
// arrange
const num = 1000;

// act
const result = sumOddFibonacciNumbers(num);

// log
console.log("result 2: ", result);

// assert
expect(result).toBe(1785);
});
});
Console
"result 1: "
,
10
,
"result 2: "
,
1785
,
/index.html
LIVE