递归
递归有三个很重要的步骤:
- 定义函数功能
- 寻找递归终止条件
- 递推函数的等价关系式
掌握这三点基本上就没问题了。
首先定义函数功能很简单,一般都是题目中给出来的,
其次,寻找递归终止条件,这个需要根据实际问题来判断,最后根据问题推导出递推函数的等价关系式
通过几个简单的实例来说明吧,首先是斐波那契数列的计算:
函数功能: 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); }