题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
2.思路:可见当n==1或者n==2时,兔子数都是1,当n>2时,兔子数都是等于前两个月的相加,这个正好可以用递归来实现
3.java简单例子:
/**
* @Author: hs
* @Description: 兔子生子
* @Date: 2021-02-01 11:14
*/
public class TuziShengzi {
public static void main(String[] args) {
//1 1 2 3 5
//总数n=f(n)+f(n-1),n>2
int n=5;
System.out.println(f(n));
}
private static int f(int n) {
if(n<=2){
return 1;
}
return f(n-1)+f(n-2);
}
}