From b34f63abd3ee9ef7e71fe4a8026a89129cdece93 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Tue, 27 Jun 2023 20:38:16 +0200 Subject: [PATCH] Fix fibonacci implementation MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- fibonacci.js | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/fibonacci.js b/fibonacci.js index 3cce529..75476bf 100644 --- a/fibonacci.js +++ b/fibonacci.js @@ -7,18 +7,13 @@ const number = 30 * @returns */ function fibonacciLoop (num) { - let a = 1 - let b = 0 - let temp - - while (num >= 0) { - temp = a - a = a + b - b = temp - num-- + const fib = [] + fib[0] = 0 + fib[1] = 1 + for (let i = 2; i <= num; i++) { + fib[i] = fib[i - 2] + fib[i - 1] } - - return b + return fib[num] } /** @@ -26,8 +21,7 @@ function fibonacciLoop (num) { * @returns */ function fibonacciRecursion (num) { - if (num <= 1) return 1 - + if (num <= 1) return num return fibonacciRecursion(num - 1) + fibonacciRecursion(num - 2) } @@ -40,7 +34,7 @@ function fibonacciRecursionMemoization (num, memo) { memo = memo || {} if (memo[num]) return memo[num] - if (num <= 1) return 1 + if (num <= 1) return num return (memo[num] = fibonacciRecursionMemoization(num - 1, memo) + -- 2.34.1