斐波那契数列—兔子繁殖题
如果说兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。假设所有兔子都不会死去,能够一直干下去,那么一年以后可决繁殖多少对兔子呢?
斐波那契数列的迭代实现
我们都知道兔子繁殖能力是惊人的,如下图:
所经过的月数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
兔子的总对数 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 | 144 |
我们可以用数学函数来定义:
找出了规律后,再利用递归,问题就迎刃而解了
代码如下:
package com.lbl;
/*
如果说兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。
假设所有兔子都不会死去,能够一直干下去,那么一年以后可决繁殖多少对兔子呢?
所经过的月数:1 2 3 4 5 6 7 8 9 10 11 12
兔子的总对数:1 1 2 3 5 8 13 21 34 55 89 144
*/
public class 兔子繁殖 {
public static void main(String[] args) {
System.out.println(count(12));
}
public static int count(int n){
if (n == 1 || n==2) {
return 1;
}
return count(n-1)+count(n-2);
}
}
运行结果: