百知教育—java学习第五章——函数的递归
04函数的递归
代码:
public class TestRecursionInvoke{
public static void main(String[] args){
m1();
}
public static void m1(){
System.out.println("m1() -start");
m1();
Systmm.out.println("m1() -end");
}
}
eg:
- 递归阶乘
package day4;
public class TestFact{
public static void main(String[] args){
System.out.println(fabo(6));
}//计算n的阶乘
public static int fact(int n){
if(n==1) return 1;
int result=n*fact(n-1);
return result;
}
}
- 递进:每一次推进,计算都比上一次变的简单,直至简单到无需要推进,就能获得结果。也叫到达出口、
- 回归:基于出口的结果,逐层向上回归,依次计算每一层的结果,直至回归到最顶层。
斐波那契数列:
package class TestFact{
public static void main(String[] args){
pubilc static int fact(int n){
if(n==1)return 1;
int result=n*fact(n-1);
return result;
}
public static int fabo(int n){
if(n==1||n==2) return 1;
else return fabo(n-1)+fab0(n-2);
}
}