- 正常运用是A方法来调用B方法
- 递归就是:A方法调用A方法,自己调用自己
- 利用递归可以利用简单的程序解决复杂的问题。它通常把复杂的问题层层转化为一个与原问题相似的,规模较小的问题来求解,递归策略只需要少量的程序就可以描述出解题过程所需要的多次重复计算,大大地减少程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。
- 递归结构包括两个部分:
- 递归头:什么时候不用调用自身的方法。如果没有头,将陷入死循环。
- 递归体:什么时候需要掉用自身方法。
package method;
public class Demo07 {
public static void main(String[] args) {
System.out.println(f(5));
}
//阶乘
//1!=1
//2! =2*1
//5! = 5*4*3*2*1
public static int f(int i) {
if (i == 1) {//递归头
return 1;
}else{
return i*f(i-1);
}
//递归,只可以用于小型运算,大型运算内存不够,会崩
}
}