有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少?
兔子增长的总数规律符合斐波那契数列,即从第三个月起,本月兔子数量=上月兔子数量+本月新增兔子数量,而本月新增兔子数量就是三个月前的兔子数量乘以2
即f(n)=f(n-1)+f(n-3)*2
public class Rabbit {
private int num = 2;// 原始兔子数量2个
public int sum(int month) {
if (month == 1 || month == 2) {
num = 2;
}
if (month >= 3) {
//当月兔子数量=上月兔子数量+本月新增兔子数量,本月新增兔子数量就是三个月前的兔子数量乘以2
num = sum(month - 1) + sum(month - 3) * 2;
}
return num;
}
public static void main(String[] args) {
Rabbit rabbit = new Rabbit();
int num = rabbit.sum(7);
System.out.println(num);//输出结果为46
}
}