C++ 编程:寻找阶乘
为了理解这个示例,你应该掌握以下 C++ 编程 主题的知识:
一个数字的阶乘是从 1 直到该数字的所有整数的乘积。阶乘只能为正整数定义。
负数的阶乘不存在。而 0 的阶乘是 1。
例如,
一个正数 n
(如 5
)的阶乘用 5!
表示,计算方式为:
5! = 1 * 2 * 3 * 4 * 5 = 120
因此,阶乘的数学逻辑是:
n! = 1 * 2 * 3 * ... * n
n! = 1 如果 n = 0 或 n = 1
在这个程序中,用户被要求输入一个正整数。然后计算该数字的阶乘并在屏幕上显示。
示例:找到给定数字的阶乘
#include <iostream>
using namespace std;
int main() {
int n;
long factorial = 1.0;
cout << "输入一个正整数:";
cin >> n;
if (n < 0)
cout << "错误!负数的阶乘不存在。";
else {
for(int i = 1; i <= n; ++i) {
factorial *= i;
}
cout << n << " 的阶乘 = " << factorial;
}
return 0;
}
输出
输入一个正整数:4
4 的阶乘 = 24
在这个程序中,我们从用户那里获取一个正整数,并使用 for
循环计算阶乘。如果用户输入负数,程序将打印错误信息。
由于数字的阶乘可能非常大,我们将阶乘变量的类型声明为 long
。
当用户输入一个正整数(比如 4)时,for
循环执行并计算阶乘。i
的初始值为 1
。
程序运行直到 i <= n
成为 false
。这将在屏幕上打印 4 的阶乘 = 24。以下是当 n = 4
时程序的执行方式:
i <= 4 | fact *= i |
---|---|
1 <= 4 | fact = 1 * 1 = 1 |
2 <= 4 | fact = 1 * 2 = 2 |
3 <= 4 | fact = 2 * 3 = 6 |
4 <= 4 | fact = 6 * 4 = 24 |
5 <= 4 | 循环终止。 |
注意: 这个程序只能计算到数字 20 的阶乘。超过这个数字,程序将无法计算阶乘,因为结果超出了 factorial
变量的容量。