题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 第一个数加上第二个数等于第三个数,第二个数加上第三个数等于第四个数第三个数加上第四数等于第五个数,到第n个数也就是(n-2)+(n-1)=n;这不就是菲波那切数数列的规律吗?除了第一项和第二项,所有的数列的值都是前一项和前一项的前一项的加和,转换成函数也就是f(n) = f(n-1) + f(n-2) 用java实现:
//菲波那切数列
public static int sortRibbit(int month){
if(month==1||month==2){
return 1;
}else{
return sortRibbit(month-1)+sortRibbit(month-2);
}
}
结果如下如图所示: