X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=fibonacci.js;h=75476bf93ca9dfb853ebede4f09beec5b061c7e6;hb=938a5f27be90a49ea486298844fc31c869827049;hp=3cce5294b82abc8c5299e40cbccb25724fc1df3f;hpb=4b16770a6cfce708521295e5f209a0ac02ecce90;p=benchmarks-js.git 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) +