递归就是A方法调用A方法!也就是自己调用自己
利用递归可以用简单的程序来解决一些复杂的问题,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可以描述出解题过程所需要的多次计算,大大的减少了程序的代码量,递归的能力在于用有限的语句来定义对象的无限集合
-
递归头:什么时候不调用自身方法,如果没有头,将陷入死循环
-
递归体:什么时候需要调用自身方法
递归要考虑:边界条件,前阶段,返回阶段
java都是栈机制的,如果递归的嵌套层数算法过多,会带来大量计算,占用大量空间内存。所以能不用递归就不用递归。用的递归前提是基数比较小。
递归更适合作为一种思想来学习。
public static void main(String[] args) {
System.out.println(f(5));
}
//阶乘方法
public static int f(int n){
if(n == 1){
return 1;
}else {
return n*f(n-1);
}
}
这里就是阶乘用递归的方法来解决,但如果这里不是5而是更大的数,很容易系统卡死或者报错,所以能不用递归就不用递归。