一件开心的事情--用递归解决了兔子问题的升级版!

开通博客有段时间了,忙于学习,也就很少写了,今天有件很开心的事情和大家分享下。
今天和同学讨论了关于springMVC的问题之后,突然对于逻辑编程题感兴趣了,想起以前考试中有一题是使用递归方法解决兔子的个数的问题,这个题在网上的基础版是:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 老师在此基础上添加了一条:兔子会在生长到九月份时死亡,使用面向对象的方法答题。当时的我思考了半天,还是只能得到大概的思路,在补充细节方面遇到了问题,对于是将整个兔子群体作为对象,还是只将单个兔子作为对象,都做了尝试,但是还是没有得到想要的结果。今天又与同学讨论了一下,感慨都学到了框架,对于这道比较基础的面向对象的问题还是没能解决,很是不爽,讨论中突然灵光一闪,既然可以用递归算出兔子出生,当然也可以用递归算出兔子死亡,理了一下逻辑,着手开始编写代码,代码如下:`
public class Test{

    public static int getMonthNum(int x){  
     if(x == 1 || x == 2){  
            return 1 ;  
        }  
        return   getMonthNum(x-1) + getMonthNum(x-2); 
    } 

    public static int DeathNum(int x){ 

       return   getMonthNum(x-1) + getMonthNum(x-2); 
    }  

    public static int Death(int x){
           x=x-8;
       if(x>0){
        return DeathNum(x);
       }
      return 0;
}

    public static void main(String[] args) {  
         int month=19;
        int num= getMonthNum(month)-Death(month);
           System.out.println(num);   
        }  

}
`
虽然得出了结果,但是与我所想的使用面向对象的方法还是有些出入,没能将单个兔子作为对象写出代码还是有些遗憾,代码有点粗糙,有待优化,不过呢,相信我以后会写出更精妙的算法,得出有趣的结果。Come on, effort! Success to their god waved.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值