From: Jérôme Benoit Date: Tue, 27 Jun 2023 18:38:16 +0000 (+0200) Subject: Fix fibonacci implementation X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=b34f63abd3ee9ef7e71fe4a8026a89129cdece93;hp=907db2ce30c8074c7aecf05be4e4d9a3b37adbab;p=benchmarks-js.git Fix fibonacci implementation Signed-off-by: Jérôme Benoit --- 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) +