如果一对兔子每月能生1对小兔子,而每对小兔在它出生后的第3个月裏,又能开始生1对小兔子,假定在不发生死亡的情况下,由1对初生的兔子开始,2年后能繁殖成多少对兔子?
根据推算,前面几个月的兔子的对数非别是:1,1,2,3,5,8。。。
这串数裏隐含著一个规律:从第3个数起,后面的每个数都是它前面那两个数的和,而这一个序列便是大名鼎鼎的斐波那契数列。
public static void main(String[] args) {
System.out.println(count(getFibonacci(2 * 12)));// 两年后会有121392对
}
public static int[] getFibonacci(int n) {
int a[] = new int[n];
a[0] = 1;
a[1] = 1;
for (int i = 3; i <= n; i++) {
a[i - 1] = a[i - 2] + a[i - 3];
}
return a;
}
public static int count(int[] a) {
int sum = 0;
for (int i = 0; i < a.length; i++)
sum += a[i];
return sum;
}