# All files / algorithms/lib factorial.js

0% Statements 0/20
0% Branches 0/1
0% Functions 0/1
0% Lines 0/20

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26

     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: ");