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

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

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


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

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

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

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

示例:使用递归计算阶乘

  1. #include<iostream>
  2. using namespace std;
  3. int factorial(int n);
  4. int main()
  5. {
  6. int n;
  7. cout << "Enter a positive integer: ";
  8. cin >> n;
  9. cout << "Factorial of " << n << " = " << factorial(n);
  10. return 0;
  11. }
  12. int factorial(int n)
  13. {
  14. if(n > 1)
  15. return n * factorial(n - 1);
  16. else
  17. return 1;
  18. }

输出

  1. Enter an positive integer: 6
  2. 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()函数。