Method 1 function sumOddFibonacciNumbers(num) { let sum = 2, first_num = 1, second_num = 1, next_num; for (let i = 0; i < num-2;...
function sumOddFibonacciNumbers(num) {
let sum = 2, first_num = 1, second_num = 1, next_num;
for (let i = 0; i < num-2; i++) {
next_num = first_num + second_num;
first_num = second_num;
second_num = next_num;
if (next_num < num){
if(next_num%2 != 0){
sum = sum + next_num;
}
}
else{
break;
}
}
return sum;
}
/**
* 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);
});
});
Method 2
function sumOddFibonacciNumbers(num) {
let sum = 0;
let previous = 0;
let current = 1;
while(current <= num) {
if(current % 2 === 1) {
sum += current;
}
const nextValue = current + previous;
previous = current;
current = nextValue;
}
return sum;
}
/**
* 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);
});
});
COMMENTS