递归


递归有三个很重要的步骤:

  • 定义函数功能
  • 寻找递归终止条件
  • 递推函数的等价关系式

掌握这三点基本上就没问题了。

首先定义函数功能很简单,一般都是题目中给出来的,

其次,寻找递归终止条件,这个需要根据实际问题来判断,最后根据问题推导出递推函数的等价关系式

通过几个简单的实例来说明吧,首先是斐波那契数列的计算:

函数功能:    fib(n)=fib(n-1)+fib(n-2) n>=3                      fib(n)=1 n<3 递归终止条件:n<3的时候终止递归 等价关系式:fib(n)=fib(n-1)+fib(n-2)   代码:
int fib(int n){
if(n<3) return 1;
return fib(n-1)+fib(n-2);
}

接下来说一下阶乘运算

函数功能:阶乘,即乘法运算 递归终止条件:n=1的时候,终止递归 等价关系式:jiecheng(n)=n * jiecheng(n-1)   代码:
int jiecheng(int n){
if(n==1) return 1;
return n*jiecheng(n-1);
}