X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=fibonacci.js;h=75476bf93ca9dfb853ebede4f09beec5b061c7e6;hb=b7177a2fc913dea81d96ef1bccd89fbc378a4890;hp=286c69cf498c688dbd48d99763b80c18d53c2f7c;hpb=bb578730a26e9d1ba7da2b40c084b5f70fa8f0c6;p=benchmarks-js.git diff --git a/fibonacci.js b/fibonacci.js index 286c69c..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) + @@ -63,4 +57,6 @@ Benchmark.suite( Benchmark.save({ file: 'fibonacci', format: 'json', details: true }), Benchmark.save({ file: 'fibonacci', format: 'chart.html', details: true }), Benchmark.save({ file: 'fibonacci', format: 'table.html', details: true }) -) +).catch(err => { + console.error(err) +})