面向对象入门3(递归方法)
方法中的调用自身——
“打开一扇通往自家房间的门,房间里还有一扇同样通往自家房间的门”
本质上是一个隐藏的循环;
Alert:要避免无限递归,一定要在能出现某些情况下,不再调用方法自身
简例1:
public class Recursive {public void test(){System.out.println("Dating");test();}public static void main(String[] args) {Recursive a=new Recursive();a.test();}}
Alert:要避免无限递归,一定要在能出现某些情况下,不再调用方法自身
例1改
public class Recursive {public int i;public void test(){i++;if(i<=5) {System.out.println("Dating"+i);test();}}public static void main(String[] args) {Recursive a=new Recursive();a.test();}}/*Dating1Dating2Dating3Dating4Dating5*/
实例1:
存在函数
f(n)=f(n+2)-2*f(n+1) , f(1)=3 ,
求f(10)
Slu: 令 N = n+2
f(N) = f(N-2) + 2*f(N-1)
public class Function {public static int fu(int a){if(a==1){return 2;}else if (a==2){return 5;}else{return fu(a-2)-2*fu(a-1);}}public static void main(String[] args) {System.out.println(Function.fu(10));}}/*5741*/
再次声明:必须要保证递归结束的条件
