--- id: 597b2b2a2702b44414742771 title: 阶乘 challengeType: 5 videoUrl: '' dashedName: factorial --- # --description--

编写一个函数来返回一个数字的阶乘。

一个数字的因子由下式给出:

N! = n \*(n-1)\*(n-2)\* ..... \* 1

例如:3! = 3 * 2 * 1 = 6 4! = 4 * 3 * 2 * 1 = 24

注意:0! = 1

# --hints-- `factorial`是一种功能。 ```js assert(typeof factorial === 'function'); ``` `factorial(2)`应该返回一个数字。 ```js assert(typeof factorial(2) === 'number'); ``` `factorial(3)`应该返回6.“) ```js assert.equal(factorial(3), 6); ``` `factorial(3)`应返回120.“) ```js assert.equal(factorial(5), 120); ``` `factorial(3)`应返回3,628,800。“) ```js assert.equal(factorial(10), 3628800); ``` # --seed-- ## --seed-contents-- ```js function factorial(n) { } ``` # --solutions-- ```js function factorial(n) { let sum = 1; while (n > 1) { sum *= n; n--; } return sum; } ```