计算阶乘的 C++ 程序

正整数 n 的阶乘等于 123*…n。在此示例中,您将学习使用 C++ 中的 for 循环计算数字的阶乘。

要理解此示例,您应该具备以下 C++ 编程 主题的知识:

一个数的阶乘是从 1 到该数的所有整数的乘积。阶乘只能为正整数定义。

负数的阶乘不存在。并且 0 的阶乘是 1。

例如,

正数的阶乘 n,比如说 55 的阶乘由 5! 表示,并通过一下公式计算得出:

5! = 1 * 2 * 3 * 4 * 5 = 120

因此,阶乘的数学逻辑是:

n! = 1 * 2 * 3 * ... * n
n! = 1 if n = 0 or n = 1

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

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

#include <iostream>
using namespace std;

int main() {
    int n;
    long double factorial = 1.0;

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

    if (n < 0)
        cout << "Error! Factorial of a negative number doesn't exist.";
    else {
        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

在这个程序中,我们从用户那里取一个正整数并使用 for 循环计算阶乘。如果用户输入负数,我们会打印一条错误消息。

我们将阶乘变量的类型声明为 long double 因为数字的阶乘可能非常大。

当用户输入一个正整数(比如 4 )时, for 将执行循环并计算阶乘。 i 的值最初是 1

程序运行直到语句 i <= n 变为 false 。下是程序在 n = 4 时的执行方式。

i <= 4 factorial *= i
1 <= 4 factorial = 1 * 1 = 1
2 <= 4 factorial = 1 * 2 = 2
3 <= 4 factorial = 2 * 3 = 6
4 <= 4 factorial = 6 * 4 = 24
5 <= 4

该程序可以计算最到整数 1754 的阶乘。因为更大的数字的阶乘的结果超出了变量 factorial 的范围。