关于兔子生兔子的算法详解
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔
子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
分析:
第1个月 -- 1对
第2个月 -- 1对
第3个月 -- 原来的1对 + 新生1对 = 2对
第4个月 --前面存在的3对(即第3个月的数量) + 往后2个月的兔子对生的兔子 1对(即4 - 2 = 2月的兔子对生的兔子对 1对) = 2 + 1 = 3对
第5个月 --第4个月的兔子对数量 (3对) + 第3个月兔子对所生的兔子对(2对,因为兔子出生2个月后可以生兔子) = 3 + 2 = 5
第6个月 --第5个月的兔子对数量 (5对) + 第4个月兔子对所生的兔子对(3对) = 5 + 3 = 8
以此类推
兔子的规律为数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
所以很明显兔子数量为斐波那契数列,下面只需要用代码计算斐波那契数列即可。
public static int feibo(int num){
if ( (num == 1) || (num == 2)){
return 1 ;
}else{
return feibo(num - 1) + feibo(num - 2) ;
}
}
以下为完整java程序:
pub