当前位置: 首页 > >

斐波那契数列??兔子生兔子问题

发布时间:

题目

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?


程序分析

兔子的规律为数列1,1,2,3,5,8,13,21….,也就是这个数等于后两个数之和:
n=(n-1)+(n-2)


方法1:

public class TestFBNQ {
public static void main(String[] args) {

System.out.println("fb = " + fb(12) );
}

public static int fb(int month){

if (month==1||month==2){

return 1;
}
int f1=1;//第一个月
int f2=1;//第二个月
int f3=0;//第三个月
for (int i = 3; i <= month ; i++) {
f3 = f1+f2;
f1 = f2;
f2 = f3;
}
return f3;
}
}

方法2:

递归法


public class TestFBNQ {
public static void main(String[] args) {

System.out.println("dg = " + dg(12) );
}
/**
* 递归
* @param month
* @return
*/
public static int dg(int month){

if (month==1||month==2){

return 1;
}
return dg(month-1)+dg(month-2);
}
}

两种方法对比还是递归比较简单



友情链接: