A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

有一对兔子,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;
        }
}

3 个回复

倒序浏览
不好意思,写错题了,是小兔子长到第3个月后每个月又生一对兔子
回复 使用道具 举报
雁过留声,人过留名,加油!
回复 使用道具 举报
感谢楼主的分享了。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马