题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少
//这是一个斐波拉契数列问题
解:f(1)=1;
f(2)=1;
f(3)开始生兔子,而且此时生兔子的数目一定是在两个月前存在的兔子数,上月前出生的兔子此时还不会生兔子,因此我们只需要知道上个月有多少对兔子+前个月有多少对兔子会生兔子=这个月兔子的数目;
因此f(n)=f(n-1)+f(n-2);
用程序如何写解决方案呢?
public static int calFibonaci(int month) {
if(month<3)
sum=1;
else {
sum=calFibonaci(month-1)+calFibonaci(month-2);
}
return sum;
}
本文探讨了一个经典的数学问题——兔子繁殖问题,并将其抽象为斐波纳契数列来解决。通过递归算法实现了兔子每月数量的计算。
348

被折叠的 条评论
为什么被折叠?



