递归
一言以蔽之,递归就是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的栈机制,所以能不用递归,就别用递归,递归的空间复杂度和空间复杂度都非常高,只有在调用较少的情况下才能用
浙公网安备 33010602011771号