原文: https://www.programiz.com/cpp-programming/examples/factorial
正整数 n 的阶乘等于1 * 2 * 3 * ... n
。 在此示例中,您将学习使用for
循环来计算数字的阶乘。
要理解此示例,您应该了解以下 C++ 编程主题:
对于任何正数n
,阶乘由下式给出:
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
。