From 3256f980b0524f3d52db45e75896f7b726a711b8 Mon Sep 17 00:00:00 2001 From: MarLatte <86508134+marlatte@users.noreply.github.com> Date: Sat, 20 May 2023 02:22:12 -0400 Subject: [PATCH] Update Fibonacci solution, test to focus on arrays Previous Fibonacci solution didn't use arrays, and since this is an array-heavy section, it seemed better to have that be the method here. Also, it accounts for entering 0 as an argument without having to add any extra code, which takes care of some currently open issues. Issues #192 and #236 are about the same thing. I added a test for that as well. --- 10_fibonacci/solution/fibonacci-solution.js | 18 +++++++----------- .../solution/fibonacci-solution.spec.js | 3 +++ 2 files changed, 10 insertions(+), 11 deletions(-) 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'); });