思路分析:
月份 兔子数 说明
1 1(对) 从开始有一对兔子
2 1
3 1+1 原本有一对 从第三个月开始 生了一对 一共是两对兔子
4 1+1+1 生了第二对
5 1+1+1+1+1 生了第三对兔子 同时3月生的第一对兔子又生了一对
6 5+3=8
兔子数目序列: 1 1 2 3 5 8 .。。。。。。。。。
总结出规律:前两项之和就是第三项
所以:第n个月的兔子数目为:f(n)=f(n-1)+f(n-2)
public class Test{
public static void main(String [] args){
for(int i=1;i<=20;i++){
System.out.println("第"+i+"个月的兔子数目为:"+f(i));}
public static int f(int n){
if(x==1||x==2) return 1;
else
return f(n-1)+f(n-2);
}
}}
代码如下:
package P1;
//古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
//小兔子长到第三个月后每个月又生一对兔子
//,假如兔子都不死,问每个月的兔子总数为多少?
public class Test {
public static void main(String [] args){
for(int i=1;i<=20;i++){
System.out.println("第"+i+"个月的兔子数目为:"+Test.frubb(i));
}
}
public static int frubb(int n){
if(n==1||n==2)
return 1;
else
return frubb(n-1)+frubb(n-2);
}
}