diff --git a/10_fibonacci/solution/fibonacci-solution.js b/10_fibonacci/solution/fibonacci-solution.js index 77add79..010131c 100644 --- a/10_fibonacci/solution/fibonacci-solution.js +++ b/10_fibonacci/solution/fibonacci-solution.js @@ -1,14 +1,10 @@ -const fibonacci = function (count) { - if (count < 0) return "OOPS"; - if (count === 0) return 0; - let a = 0; - let b = 1; - for (let i = 1; i < count; i++) { - const temp = b; - b = a + b; - a = temp; - } - return b; +const fibonacci = function(count) { + if (count < 0) return "OOPS" + const fibPart = [0, 1]; + for (let index = 1; index < count; index++) { + fibPart.push(fibPart[index] + fibPart[index -1]); + } + return fibPart[count]; }; module.exports = fibonacci; diff --git a/10_fibonacci/solution/fibonacci-solution.spec.js b/10_fibonacci/solution/fibonacci-solution.spec.js index 89de463..4e6a44d 100644 --- a/10_fibonacci/solution/fibonacci-solution.spec.js +++ b/10_fibonacci/solution/fibonacci-solution.spec.js @@ -16,6 +16,9 @@ describe('fibonacci', () => { test('25th fibonacci number is 75025', () => { expect(fibonacci(25)).toBe(75025); }); + test('0th fibonacci number is o', () => { + expect(fibonacci(0)).toBe(0); + }); test("doesn't accept negatives", () => { expect(fibonacci(-25)).toBe('OOPS'); });