java小算法—数兔子问题

来源:互联网 发布:oracle sql 语法大全 编辑:程序博客网 时间:2024/05/13 23:52

题目:古典问题:有一对兔子,从出生后第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);
}
}

}


结果



原创粉丝点击