方法的递归
概念:方法调用方法自身
注意:
1.找规律
2.找出口
public class Test06{
/**
需求:编写一个方法,传入n,求n的阶乘
阶乘:数学中的概念
5! = 1*2*3*4*5 --> 5! = 4!*5
4! = 1*2*3*4 --> 4! = 3!*4
3! = 1*2*3 --> 3! = 2!*3
2! = 1*2 --> 2! = 1!*2
1! = 1 --> 1! = 1 找出口
--> n! = (n-1)! * n 找规律
*/
public static void main(String[] args){
int num = method(5);
System.out.println(num);
}
public static int method(int n){
if(n != 1){
return method(n-1)*n;
}else{
return 1;
}
}
}
那波斐切数列
public class Test07{
/**
需求:有一对兔子,从出生后第3个月起每个月都生对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
问n月的兔子总数为多少?
找规律:当月兔子个数 = 上月兔子个数+上上月兔子个数
找出口:第一个月和第二个月兔子都是1对
*/
public static void main(String[] args){
System.out.println(getRabbit(9));// 第九个月的兔子总数
}
public static int getRabbit(int month){
if(month==1 || month==2){
return 1;
}else{
return getRabbit(month-1) + getRabbit(month-2);
}
}
}