【PTA】古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?输出24个月的兔子总数

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
输出24个月的兔子总数

输入格式:

无输入。

输出格式:

第i个月兔子有多少对,总数是多少

输入样例:


输出样例:

在这里给出相应的输出。例如:

第1个月有兔子1对, 总数是2
第2个月有兔子1对, 总数是2
第3个月有兔子2对, 总数是4
第4个月有兔子3对, 总数是6
第5个月有兔子5对, 总数是10
第6个月有兔子8对, 总数是16
第7个月有兔子13对, 总数是26
第8个月有兔子21对, 总数是42
第9个月有兔子34对, 总数是68
第10个月有兔子55对, 总数是110
第11个月有兔子89对, 总数是178
第12个月有兔子144对, 总数是288
第13个月有兔子233对, 总数是466
第14个月有兔子377对, 总数是754
第15个月有兔子610对, 总数是1220
第16个月有兔子987对, 总数是1974
第17个月有兔子1597对, 总数是3194
第18个月有兔子2584对, 总数是5168
第19个月有兔子4181对, 总数是8362
第20个月有兔子6765对, 总数是13530
第21个月有兔子10946对, 总数是21892
第22个月有兔子17711对, 总数是35422
第23个月有兔子28657对, 总数是57314
第24个月有兔子46368对, 总数是92736

思路参考斐波拉契数列。这里使用递归的方法,推荐使用循环,当需要计算的月数越多时递归越慢

public class Main{
    //经典递归
    public static int haveRabbit(int m){
        if(m == 1){
            return 2;
        }
        else if(m == 2){
            return 2;
        }else{
            return haveRabbit(m-1)+haveRabbit(m-2);
        }
    }
    
    
    public static void main(String args[]){
        for(int i = 1;i <= 24;i++){
            System.out.println("第"+i+"个月有兔子"+haveRabbit(i)/2+"对, 总数是"+haveRabbit(i));
        }
    }
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1886i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值