UNPKG

@princedev/calculate

Version:

Fast, lightweight, and extinsible mathematical and statistical functions.

32 lines (27 loc) 591 B
import exactArguments from '../../_utils/exactArguments'; /** * @name factorial * @summary Returns the factorial of a number. * * @description Returns the factorial of a number. * * @example * // Normal usage * let result = factorial(4); * // => 24 * * @param {numberr} a numbers given. * @returns {number} * * @function pure */ export default function factorial(a: number): number { exactArguments(1, arguments); return factorialStep(a); } function factorialStep(a: number): number { if (a === 1 || a === 0) { return 1; } return a * factorialStep(a - 1); }