From eed95e70aeb1a5f111ea01efd5e0a69f6b2d1971 Mon Sep 17 00:00:00 2001 From: Vasily Guzov Date: Mon, 23 Sep 2024 12:37:45 +0300 Subject: [PATCH] [solution] factorial for, factorial recursive --- lib/factorial.js | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 lib/factorial.js diff --git a/lib/factorial.js b/lib/factorial.js new file mode 100644 index 0000000..dd5da6b --- /dev/null +++ b/lib/factorial.js @@ -0,0 +1,25 @@ +export function factorial(n) { + let result = 1; + for (let i = n; i > 1; i--) { + result *= i; + } + return result; +} + +export function factorialRecursive(n) { + if (n < 2) { + return 1; + } + + return n * factorialRecursive(n - 1); +} + +// --------------------------- TESTS --------------------------------------- + +console.time("factorial time: "); +factorial(1000); +console.timeLog("factorial time: "); + +console.time("recursive factorial time: "); +factorialRecursive(1000); +console.timeLog("recursive factorial time: ");