函数直接或间接调用自己的过程称为递归调用。把握以下两个关键点,就基本掌握了递归的思想:

1、必须定义一个终止条件;否则函数会永远递归下去,直到栈空间耗尽。所以,递归函数一般都用类似if语句来判断终止条件,如果条件成立则继续调用,否则函数结束调用,开始返回。

2、找到本级函数和下一级函数的等价条件。

递归的通用伪代码如下

  1. 返回类型 Func(参数){  
  2.     if(结束条件成立)  
  3.          返回常量;//递归结束  
  4.      else 
  5.          返回下一级函数的等价条件;  

例子:求5的阶乘

  1. #include <iostream>  
  2. using namespace std;  
  3. int f(int n){  
  4.     if(n == 0 || n == 1)  
  5.         return 1;  
  6.     else 
  7.         return n * f(n-1);  
  8. }  
  9. int main(){  
  10.     cout << f(5) << endl;  
  11.     return 0;