递归函数是指在函数定义中调用自身的函数。C++语言也支持递归函数。
下面是一个使用递归函数计算阶乘的例子:
#include <iostream>
using namespace std;
int factorial(int n) {
// 基本情况,当 n 等于 0 或 1 时,阶乘为 1
if (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
相乘返回。递归函数的执行会反复调用自身,直到达到基本情况才停止递归。