递归

一言以蔽之,递归就是A方法调用A方法,即自己调用自己

 

利用递归可以把一个大型的问题层层转化,将其转化为比较小规模相似的原问题来进行处理

 

递归包含两部分:

  • 递归头:什么时候不调用自身呢,调用自身什么时候停止?如果没有递归头,将最终陷入死循环,递归头就像一个线圈的一个头
  • 递归体:什么时候调用自身

阶乘

package com.xuyifan.function;

/**
 * @author xyf
 * @create 2020-08-13-15:07
 */

/**
 * 简单的递归,阶乘
 */
public class Demo06 {
    public static void main(String[] args) {
        Demo06 demo06=new Demo06();
        System.out.println(demo06.f(6));


    }
    public int f(int a){
        if(a==1){
            return 1;
        }else {
            return a*f(a-1);
        }
    }
}

输出:720

因为JAVA的栈机制,所以能不用递归,就别用递归,递归的空间复杂度和空间复杂度都非常高,只有在调用较少的情况下才能用

posted @ 2020-08-13 15:23  jueqishizhe  阅读(102)  评论(0)    收藏  举报