有一对兔子,3个月起每个月都生一对兔子,小兔子长到第4个月后每个月又生一对兔子,假设兔子都不死,问每个月兔子总数为多少?
首先我们要明白题目的意思指的是每个月的兔子总数(这里应该是按对来计算的);我们假设将兔子分为小中大三种,兔子从出生后每三个月就生出一对兔子,那么我们假定第一个月为小兔子,第二个月为中兔子,第三个月之后就为老兔子(老兔子每过三个月还会再生的),那么第一个月分别有1、0、0,第二个月分别为0、1、0,第三个月分别为1、0、1,第四个月分别为,1、1、1,第五个月分别为2、1、2,第六个月分别为3、2、3,第七个月分别为5、3、5……
兔子总数分别为:1、1、2、3、5、8、13……
于是得出了一个规律,从第三个月起,后面的兔子总数都等于前面两个月的兔子总数之和。
于是有了下面的编程:
public class Demo1_String {
public static void main(String[]args){
for(int i=1;i<20;i++){
int rabbit=rabbitNum(i);
System.out.println("第"+i+"个月的兔子总数为"+rabbit);
}
}
public static int rabbitNum(int x){
int rabbit=1;
if(x==1||x==2){
return rabbit;
}else{
rabbit=rabbitNum(x-1)+rabbitNum(x-2);
return rabbit;
}
} |
|