在C++中,递归函数通常需要一个基本情况(base case)来终止递归,以及一个递归情况(recursive case)来逐步逼近基本情况。为了实现递归,你需要将问题分解为更小的子问题,并将这些子问题作为参数传递给递归函数。
以下是一个简单的递归函数示例,用于计算阶乘:
#include // 递归函数,计算阶乘 unsigned long long factorial(unsigned int n) { // 基本情况:0的阶乘为1 if (n == 0) { return 1; } // 递归情况:n的阶乘等于n乘以(n-1)的阶乘 else { return n * factorial(n - 1); } } int main() { unsigned int n = 5; std::cout << "Factorial of "<< n << " is: " << factorial(n) << std::endl; return 0; }
在这个例子中,factorial
函数接受一个unsigned int
类型的参数n
。基本情况是当n
为0时,返回1。递归情况是计算n * factorial(n - 1)
,即将问题分解为更小的子问题(计算(n-1)
的阶乘),并将子问题作为参数传递给递归函数。