Skip to content

Latest commit

 

History

History
71 lines (46 loc) · 1.91 KB

File metadata and controls

71 lines (46 loc) · 1.91 KB

C++ 程序:使用递归计算数字的阶乘

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

使用递归查找非负整数(由用户输入)的阶乘的示例。

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


该程序从用户处获取一个正整数,然后计算该数字的阶乘。 假设用户输入 6,

Factorial will be equal to 1*2*3*4*5*6 = 720

在此示例中,您将学习使用递归函数查找数字的阶乘。

访问此页面了解如何使用循环来计算阶乘

示例:使用递归计算阶乘

#include<iostream>
using namespace std;

int factorial(int n);

int main()
{
    int n;

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

    cout << "Factorial of " << n << " = " << factorial(n);

    return 0;
}

int factorial(int n)
{
    if(n > 1)
        return n * factorial(n - 1);
    else
        return 1;
} 

输出

Enter an positive integer: 6
Factorial of 6 = 720

在上面的程序中,假设用户输入数字 6。该数字将传递到factorial()函数。

在此函数中,将 6 乘以阶乘(6-1 = 5)。 为此,数字 5 再次传递给factorial()函数。

同样,在下一次迭代中,将 5 乘以(5-1 = 4)的阶乘。 并且,将 4 传递给factorial()函数。

这将继续直到值达到 1 并且函数返回 1。

现在,每个函数将值返回以计算1 * 2 * 3 * 4 * 5 * 6 = 720,该值将返回到main()函数。