递归定义
- 程序调用自身的编程技巧
需满足的两个条件
- 有反复执行的过程(调用自身)
- 有跳出反复执行过程的条件(递归出口)
递归例子
- 阶乘
公式推导:n ! = n * ( n - 1 ) * ( n - 2 ) * ... * 1 ( n > 0 )
int recursive(int i) {
int sum = 0;
if(0 == i)
return (1);
else
sum = i * recursive(i-1);
return sum;
}
- 斐波那契数列
斐波那契数列,又称黄金分割数列,指的是这样一个数列1、1、2、3、5、8、13、21...... ,这个数列从第三项开始,每一项都等于前两项之和。
long fib(int n){
if(n==0)
return 0;
else if(n==1 || n==2)
return 1;
else if(n>2)
return fib(n-1) + fib(n-2);
return -1;
}