递归
- 简单理解: 一般就是一个方法内部自己调自己
方法的递归调用一定得有出口,不然只有死路一条。
通过一个斐波拉契数列,学习方法的递归调用
* f(0) = 0;
* f(1) = 1;
* f(n) = f(n-1) + f(n-2) n>=2;
* f(2) = f(1) + f(0) 1
* f(3) = f(2) + f(1) 2
* f(4) = f(3) + f(2) 3
* f(5) = f(4) + f(3) 5
* f(100)
public class Test {
/*
* 方法的递归调用
* 方法的内部,自己调用自己
*
* 通过一个斐波拉契数列,学习方法的递归调用
* f(0) = 0;
* f(1) = 1;
* f(n) = f(n-1) + f(n-2) n>=2;
*
* f(2) = f(1) + f(0) 1
* f(3) = f(2) + f(1) 2
* f(4) = f(3) + f(2) 3
* f(5) = f(4) + f(3) 5
*
* f(100)
* */
public static void main(String[] args) {
System.out.println(f(4));
}
public static int f(int n){
if(n==0||n==1){//99%
return n;
}else{
return f(n-1)+ f(n-2);//此处是在调用方法,不是在使用公式
}
}
}