有人想知道一年内一对兔子可繁殖成多少对,便筑了一道围墙把一对兔子关在里面。已知一对兔子每一个月可以生一对小兔子,而一对兔子出生后.第三个月开始生小兔子假如一年内没有发生死亡,则一对兔子一年内能繁殖成多少对?

分析一:
列举前七个月兔子的对数,不难发现规律。对应的兔子对数分别是1,1,2,3,5,8,13。不难发现从第三个月开始,兔子的对数等于前面两个月的兔子的对数之和。
分析二:
本质上有两类兔子:一是能生殖的兔子,称为成年兔子;二是不能生殖的兔子,称为新生兔子。每个月的兔子数等于成年兔子与新生兔子之和。而新生兔子数等于上月成年兔子数,成年兔子数等于上月成年兔子对数与新生兔子对数之和。
假设每个月的兔子总数为f(n)。那么f(n)=第n个月成年兔子数+第n个月新生兔子数=(第n-1个月成年兔子数+第n-1个月新生兔子数)+第n-1个月成年兔子数=(第n-1个月成年兔子数+第n-1个月新生兔子数)+(第n-2个月成年兔子数+第n-2个月新生兔子数)=f(n-1)+f(n-2)。
所以
f(2)=f(1)=1;
f(n)=f(n-1)+f(n-2);(n>=3)
方法:
public int GetRabits(int month)
{
if (month == 1 || month == 2)
{
return 1;
}
else
{
return GetRabits(month - 1)+GetRabits(month-2);
}
}
posted on
浙公网安备 33010602011771号