企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# C++ 程序:使用递归计算数字的阶乘 > 原文: [https://www.programiz.com/cpp-programming/examples/factorial-recursion](https://www.programiz.com/cpp-programming/examples/factorial-recursion) #### 使用递归查找非负整数(由用户输入)的阶乘的示例。 要理解此示例,您应该了解以下 [C++ 编程](/cpp-programming "C++ tutorial")主题: * [C++ 函数](/cpp-programming/function) * [C++ 中用户定义函数的类型](/cpp-programming/user-defined-function-types) * [C++ `if`,`if...else`和嵌套`if...else`](/cpp-programming/if-else) * [C++ 递归](/cpp-programming/recursion) * * * 该程序从用户处获取一个正整数,然后计算该数字的阶乘。 假设用户输入 6, ```cpp Factorial will be equal to 1*2*3*4*5*6 = 720 ``` 在此示例中,您将学习使用递归函数查找数字的阶乘。 访问此页面了解如何使用循环来计算[阶乘](/cpp-programming/examples/factorial "Source Code to find factorial")。 ## 示例:使用递归计算阶乘 ```cpp #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; } ``` **输出** ```cpp 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()`函数。