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