递归函数是指在函数定义中调用自身的函数。C++语言也支持递归函数。
下面是一个使用递归函数计算阶乘的例子:
#include <iostream>
using namespace std;int factorial(int n) {// 基本情况,当 n 等于 0 或 1 时,阶乘为 1if (n == 0 || n == 1) {return 1;} else {// 递归调用,将问题分解为规模更小的问题return n * factorial(n - 1);}
}int main() {int n = 5;cout << "Factorial of " << n << " is " << factorial(n) << endl;return 0;
}
输出结果为:
Factorial of 5 is 120
在上面的例子中,factorial()
函数使用递归的方式来计算阶乘。当 n
等于 0 或 1 时,阶乘为 1,否则将问题分解为规模更小的问题,即计算 n-1
的阶乘,并将结果与 n
相乘返回。递归函数的执行会反复调用自身,直到达到基本情况才停止递归。