JAVA核心基础篇-递归
递归的方式:
直接递归:方法自己调用自己
间接递归:A方法调用B方法,B方法调用C方法,C方法调用A方法
注意事项:
1、保证能够停下来,否则回内存溢出
2、次数不能太多,否则也会溢出
3、构造方法禁止递归,会直接编译报错
递归前提
调用方法时,方法主体不变,每次调用的参数不同,可以用递归。
1、什么是递归
A方法调用A方法自己就是递归。
public static void foo() {//...foo();//方法调用自身//...
}
2、递归用于什么场景
递归是一种常见的算法设计方法,特别适用于解决那些可以分解为相似子问题的问题。常见的递归问题包括阶乘计算、斐波那契数列、树和图的遍历等。
递归头:什么时候不调用自身方法,如果没有请求头、将陷入死循环。
递归体:什么时候需要调用自身方法
阶层:
2的阶层:2乘以1
3的阶层:3乘以2乘以1
5的阶层:5乘以4乘以3乘以2乘以1