递归就是指在一个方法体中调用方法自身的形式。
使用原则:
1)、有明确递归的规律和退出条件。
2)、使用递归必须使问题简单化而不是复杂化。
3)、当递归可能会影响程序的执行性能时,应当使用递推代替。
例如我们可以利用递归来计算指定数值的阶乘并返回。
我们知道:
5! = 5 * 4 * 3 * 2 * 1;
4! = 4 * 3 * 2 * 1;
3! = 3 * 2 * 1;
2! = 2 * 1;
1! = 1;
于是我们推出
5! = 5 * 4!;
4! = 4 * 3!;
3! = 3 * 2!;
2! = 2 * 1!;
1! = 1;
public class TestJiecheng{
//自定义成员方法根据参数指定的数值计算阶乘并返回
int fa(int n){
//递归
if(n == 1){
return 1;
}
return n * fa(n-1); //return 5*fa(4); =>return 5*4*fa(3);
//return 5 * 4 * 3 * fa(2); => return 5 * 4 * 3 * 2 * fa(1);
//fa(1) = 1;
}
public static void main(String[] args){
TestJiecheng tj = new TestJiecheng();
int num = tj.fa(5);
System.out.println("num = " + num); //120
}
}