递归概念
递归就是方法自己调用自己 ,每次调用时传入不同的变量 ,一定要有一个结束递归的条件完成递归。
递归实现斐波那契代码
@org.junit.jupiter.api.Test
public void test1(){
System.out.println(f(5));
}
public Integer f(int n){
if(n <= 2){
return n;
}
return f(n-1) + f(n-2);
}
递归执行过程如下图
个人理解,在调用方法f(5)的时候,首先递归会像遍历一样传递出所有函数也就是红色框住的地方按执行顺序执行,然后传递到f(2)f(1)递归结束条件达到的时候(蓝色框标注是红色执行后蓝色归和)将返回值相加归回,最终算出f(5)结果。