您的位置:首页 > 编程语言 > Java开发

java小算法—数兔子问题

2017-05-27 11:57 351 查看
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少?

关于斐波那契数列的兔子繁殖问题可以如下理解:

实际月份  1    2    3    4    5    6    7     8

幼仔对数  1    0    1    1    2    3    5     8
成兔对数  0    1    1    2    3    5    8    13
总体对数  1    1    2    3    5    8   13   21

幼仔对数=前月成兔对数
成兔对数=前月成兔对数+前月幼仔对数
总体对数=本月成兔对数+本月幼仔对数

可以看出幼仔对数、成兔对数、总体对数都构成了一个数列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。


代码实现

public class RabbitMain {

public static void main(String[] args) {
RabbitMain r=new RabbitMain();
int num=r.fun(10);
System.out.println("10个月后小兔子----:"+num);
}

private int fun(int n) {
if(n==1||n ==2){
return 1;
}else{
return fun(n-1)+fun(n-2);
}
}

}


结果




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息