方法的递归调用(如果一个方法直接或间接地调用自身,这种调用称为自身调用)
三个要求:①每一次的调用都会使问题得到简化;②前后调用应该有一定的关系,通常前一次调用为后一次调用准备好条件;③问题规模极小时应该终止递归调用,以避免无限调用。
例:计算n!
public class example{
public static void main(String[] args){
int n= 8;
long f;
f=fac(n);
System.out.printf("%d!=%d\n",n,f);
System.out,println(fac(5));
}
static long fac (int n){
if (n>1)
return n*fac(n-1);
else
return 1;
}
}
例
:斐波那契数列
public class example2{
public static void main(String[] args){
System.out.println("第六个数:"+fib(6));
System.out.println("第20个数:"+fib(20));
}
static int fib(int b){
if(n>2)
return fib(n-1)+fib(n-2);
else
return 1
}
}