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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

17 个回复

倒序浏览
好深奥!!!!!!!!!!!!
回复 使用道具 举报
这种题其实看着复杂只要推导前几个数就很好理解了
兔子的规律为数列1,1,2,3,5,8,13,21....
从第三项开始数值为前两项之和。
public static int fun(int n){
                if(n==1||n==2){    //如果是前两个月则兔子数是1
                return 1;
                }
                return (fun(n-1)+fun(n-2));    //第三个月开始为前两个月之和
        }
       
        public static void main(String[] args)
        {
                //定义要求第10 个月的兔子对数
                int n = 10;
                System.out.println("第"+ n +"个月的兔子对数为:" + fun(10));

        }
回复 使用道具 举报
本帖最后由 zx0210 于 2015-8-28 23:22 编辑

我不知道你有没有学过递归这个方法,定义一个递归函数能帮你解决这个问题,兔子各个月的数目为1,1,2,3,5,8,13,21..每个月的兔子个数都等于前两个月兔子的数目之和
public static int rab(int month){  //定义一个方法,返回值为兔子个数,数据类型为int
    if(month==1||month==2){  //1月与2月的兔子数目不变
        return 1;
    }else{
        return rab(month-1)+rab(month-2); //返回第month月的兔子数目(函数自身调用自己,完成递归)
    }
}
回复 使用道具 举报
这个题目我看到过
回复 使用道具 举报
递归算法
回复 使用道具 举报
楼上有大神
回复 使用道具 举报
没仔细研究过!
回复 使用道具 举报
蚊子先生 来自手机 中级黑马 2015-8-28 23:32:28
9#
上面都是大神。。
回复 使用道具 举报
我是新手,不过来到这,我还是受教了
回复 使用道具 举报
public static int fun(int n){
                if(n==1||n==2){    //如果是前两个月则兔子数是1
                return 1;
                }
                return (fun(n-1)+fun(n-2));    //第三个月开始为前两个月之和
        }
        
        public static void main(String[] args)
        {
                //定义要求第10 个月的兔子对数
                int n = 10;
                System.out.println("第"+ n +"个月的兔子对数为:" + fun(10));

        }
回复 使用道具 举报

过程呢,?????????????????
回复 使用道具 举报
姜群 发表于 2015-8-28 23:40
public static int fun(int n){
                if(n==1||n==2){    //如果是前两个月则兔子数是1
        ...

高手啊,谢谢支持。。。。。。。。。。。。。
回复 使用道具 举报
递归算法,强大了
回复 使用道具 举报
用一个递归就可以做出来,主要是思路!
回复 使用道具 举报
kevin986745zk 发表于 2015-8-29 10:47
用一个递归就可以做出来,主要是思路!

可是想不出来怎么办。。。。。。。
回复 使用道具 举报
kevin986745zk 发表于 2015-8-29 10:47
用一个递归就可以做出来,主要是思路!

可是想不出来怎么办。。。。。。。
回复 使用道具 举报
大大的大孩 发表于 2015-8-29 11:05
可是想不出来怎么办。。。。。。。

上百度,一切都有可能!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马