用递归实现不死神兔

故事得从西元1202年说起,话说有一位意大利青年,名叫斐波那契。

在他的一部著作中提出了一个有趣的问题:假设一对刚出生的小兔一个月后就能长成大兔,

再过一个月就能生下一对小兔,并且此后每个月都生一对小兔,没有发生死亡,

问:现有一对刚出生的兔子2年后(24个月)会有多少对兔子?

public class Test {
    public static void main(String[] args) {
        /*解题思路:
        时间      兔子总数    新增
        初始      1对         0
        一个月后  1对         0
        两个月后  2对         1
        三个月后  3对         1
        四个月后  5对         2
        五个月后  8对         3
        六个月后  13对        5
        ......   ...       .....
        提示:从二个月后每次增加的兔子数量均为前一个月的前一个月的兔子数量如:
        二月后=一月后(本次增加时原有的兔子量)+初始(本次增加时可以生小兔子的兔子量)
        三月后=二月后(本次增加时原有的兔子量)+一月后(本次增加时可以生小兔子的兔子量)
        .......................
        以此类推可以知道n月后= n-1月后的兔子数量+n-2月后的兔子数量;
        便可以递归实现得到兔子数量
        * */
       

        for(int i = 1;i < 6;i++)
            System.out.println(function6(i));


    }

    public static int function6(int number){
        if(number == 1)return 1;
        else if(number == 2) return 2;
        else return function6(number-1)+function6(number-2);
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值