如果一对兔子每月能生一对小兔子,而每个小兔子在它出生后的第三个月里又能开始生一对小兔子,假定在不发生死亡的情况下,由一对出生的兔子开始,二十个月后能繁殖出多少对兔子?
package com.yuhui_05;
//不死神兔 案例 其实就是求对应的斐波拉契额数列
//如果一对兔子每月能生一对小兔子,而每个小兔子在它出生后的第三个月里又能开始生一对小兔子,
// 假定在不发生死亡的情况下,由一对出生的兔子开始,二十个月后能繁殖出多少对兔子?
public class Demo02 {
public static void main(String[] args) {
int[] tu = new int[20];
tu[0] =1;
tu[1] =1;
for (int i=2;i<tu.length;i++){
tu[i] = tu[i-2]+tu[i-1];
}
System.out.println("第二十个月时的兔子对数为:"+tu[19] +"对");
//函数调用
System.out.println(fb(5));
System.out.println(feibo(6));
}
//利用递归实现斐波拉契数列
public static int feibo(int number){
if (number==1 || number==2){
return 1;
}
else {
return feibo(number-2)+feibo(number-1);
}
}
//利用循环实现斐波拉契数列
public static int fb(int number){
int num1=1,num2=1,temp=0;
if (number==1 || number==2) {
return 1;
}else {
for(int i=0;i<number-2;i++){
temp = num1+num2;
num1 = num2;
num2 = temp;
}
return temp;
}
}
}