# C++ 程序：查找阶乘

> 原文： [https://www.programiz.com/cpp-programming/examples/factorial](https://www.programiz.com/cpp-programming/examples/factorial)

#### 正整数 n 的阶乘等于`1 * 2 * 3 * ... n`。 在此示例中，您将学习使用`for`循环来计算数字的阶乘。

要理解此示例，您应该了解以下 [C++ 编程](/cpp-programming "C++ tutorial")主题：

*   [C++ `for`循环](/cpp-programming/for-loop) 

* * *

对于任何正数`n`，阶乘由下式给出：

```cpp
factorial = 1*2*3...*n
```

找不到负数的阶乘，0 的阶乘为 1。

在下面的该程序中，要求用户输入一个正整数。 然后，该数字的阶乘被计算并显​​示在屏幕中。

* * *

## 示例：查找给定数字的阶乘

```cpp
#include <iostream>
using namespace std;

int main()
{
    unsigned int n;
    unsigned long long factorial = 1;

    cout << "Enter a positive integer: ";
    cin >> n;

    for(int i = 1; i <=n; ++i)
    {
        factorial *= i;
    }

    cout << "Factorial of " << n << " = " << factorial;    
    return 0;
}
```

**输出**

```cpp
Enter a positive integer: 12
Factorial of 12 = 479001600
```

在此，变量`factorial`的类型为`unsigned long long`。

这是因为数字的阶乘始终为正，这就是为什么要在其中添加`unsigned`限定词的原因。

由于阶乘数可能很大，因此将其定义为`long long`。