程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21....
解决方案1:
思想方法:某月的兔子数量即为上个月的兔子数量+上个月出生的兔子数量,而出生的兔子数量即上个月的大兔子数量,也即上上月的兔子数量(上上月的兔子到了上个月一定会成为大兔子,一定会生兔子宝宝)。所以很明显兔子数量为斐波那契数列,下面只需要用代码计算斐波那契数列即可。
核心代码:
public static int recurse(int month){
if(month==1||month==2)
temp=1;
if(month>2)
temp=recurse(month-1)+recurse(month-2);
//System.out.println("temp="+temp);
return temp;
}
如果我们没有数学基础怎么办,不会分析,不知道斐波那契数列怎么办?没关系,可以这样思考
解决方案2:
思想方法:虽然不知道斐波那契数列,但是我们如果知道某个月的大兔子小兔子两者的数量,一定可以知道下个月的大兔子小兔子数量,所以我们可以通过N次这个过程,计算出任何一个月的大小兔子数量。
核心代码:
while(month>0){
int temp=small;//先保存small即小兔子的数量,因为小兔子数量一会会变化
small=big;
big=big+temp;
month--;
}