在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)
),并调用自身来解决这些更小的部分。最后,main
函数接收用户输入的非负整数,并调用factorial
函数计算阶乘,然后输出结果。