原文: https://www.programiz.com/cpp-programming/examples/factorial

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

要理解此示例,您应该了解以下 C++ 编程主题:


对于任何正数n,阶乘由下式给出:

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

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

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


示例:查找给定数字的阶乘

#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;
}

输出

Enter a positive integer: 12
Factorial of 12 = 479001600

在此,变量factorial的类型为unsigned long long

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

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