---
title: Factorial
id: 597b2b2a2702b44414742771
challengeType: 5
videoUrl: ''
localeTitle: 阶乘
---

## Description
<section id="description"><p>编写一个函数来返回一个数字的阶乘。 </p><p>一个数字的因子由下式给出： </p> N！ = n *（n-1）*（n-2）* ..... * 1 <p>例如：3！ = 3 * 2 * 1 = 6 4！ = 4 * 3 * 2 * 1 = 24 </p><p>注意：0！ = 1 </p></section>

## Instructions
<section id="instructions">
</section>

## Tests
<section id='tests'>

```yml
tests:
  - text: <code>factorial</code>是一种功能。
    testString: 'assert(typeof factorial === "function", "<code>factorial</code> is a function.");'
  - text: <code>factorial(2)</code>应该返回一个数字。
    testString: 'assert(typeof factorial(2) === "number", "<code>factorial(2)</code> should return a number.");'
  - text: <code>factorial(3)</code>应该返回6.“）
    testString: 'assert.equal(factorial(3),results[0],"<code>factorial(3)</code> should return 6.");'
  - text: <code>factorial(3)</code>应返回120.“）
    testString: 'assert.equal(factorial(5),results[1],"<code>factorial(3)</code> should return 120.");'
  - text: '<code>factorial(3)</code>应返回3,628,800。“）'
    testString: 'assert.equal(factorial(10),results[2],"<code>factorial(3)</code> should return 3,628,800.");'

```

</section>

## Challenge Seed
<section id='challengeSeed'>

<div id='js-seed'>

```js
function factorial (n) {
  // Good luck!
}

```

</div>


### After Test
<div id='js-teardown'>

```js
console.info('after the test');
```

</div>

</section>

## Solution
<section id='solution'>

```js
// solution required
```
</section>
