在C++中,递归函数是一种调用自身的函数。要实现一个递归函数,您需要定义一个基本情况(base case)和一个递归情况(recursive case)。基本情况是函数处理的最简单问题,可以直接解决,而递归情况是将问题分解为更小的子问题,然后调用自身来解决这些子问题。
下面是一个简单的C++递归函数示例,用于计算阶乘:
#include <iostream>
// 阶乘递归函数
unsigned long long factorial(int n) {
// 基本情况:0的阶乘等于1
if (n == 0) {
return 1;
}
// 递归情况:n的阶乘等于n乘以(n-1)的阶乘
else {
return n * factorial(n - 1);
}
}
int main() {
int number;
std::cout << "Enter a non-negative integer: ";
std::cin >> number;
// 计算阶乘并输出结果
unsigned long long result = factorial(number);
std::cout << number << "! = " << result << std::endl;
return 0;
}
在这个示例中,factorial
函数首先检查基本情况(n == 0
),如果满足则返回1。如果不满足基本情况,函数将问题分解为更小的子问题(n * factorial(n - 1)
),然后调用自身来解决这些子问题。最后,当递归到基本情况时,函数开始返回值并逐级解决更大的问题。