java程序之兔子繁殖

题目:

一只兔子三年可以生一只兔子 刚出生的兔子等三年可以生兔子  有x只兔子 有y年 计算有多少只兔子 假如兔子都不死,问兔子总数为多少? 

相关题目:Java程序之可爱的小兔兔_java 经典编程题有一对兔子-CSDN博客(注:题目不同)

在看到这个问题的时候  脑海立马浮现 

用一只兔子试一下↓↓↓↓↓↓↓↓

public static void main(String[] args) {
        int rabbit = 1;

        int year = 10;

        int oneYearRabbit = 0;

        int twoYearRabbit= 0;

        int threeYeaRabbitr = 0;

        while (year > 0){

            oneYearRabbit =rabbit;

            rabbit =rabbit +threeYeaRabbitr;

            threeYeaRabbitr =twoYearRabbit;

            twoYearRabbit =oneYearRabbit;

            year --;

        }
        System.out.println(rabbit + oneYearRabbit+twoYearRabbit + threeYeaRabbitr);
    }

输出了 79。。。。。

哪里出问题了   
oneYearRabbit =rabbit;

twoYearRabbit =oneYearRabbit;

因为第一年的兔子已经赋值了  所以算多了。。。。。。
然后 在用一只兔子试一下↓↓↓↓↓↓↓↓

public static void main(String[] args) {
        int rabbit = 1;

        int year = 10;

        int oneYearRabbit = 0;

        int twoYearRabbit= 0;

        int threeYeaRabbitr = 0;

        while (year > 0){

            int yearRabbit = oneYearRabbit;

            oneYearRabbit =rabbit;

            rabbit =rabbit +threeYeaRabbitr;

            threeYeaRabbitr =twoYearRabbit;

            twoYearRabbit =yearRabbit;

            year --;

        }
        System.out.println(rabbit + oneYearRabbit+twoYearRabbit + threeYeaRabbitr);
    }

输出36.。。。。。还是不对  为什么呢 ????

被自己蠢笑了。。。。oneYearRabbit =rabbit;   这样成了每年兔子都能生兔子了

稍加思索以后  答案来了!!

public static void main(String[] args) {
        int rabbit = 1;
        int year = 10;
        while (year>=3){
            rabbit = rabbit * 2;
            year = year - 3;
        }
        System.out.println(rabbit);
    }

输出8  

这个问题让我明白了 一看到问题就直接解决的方案  大概率不是最好的方案   所以思考很重要

要是有更好的办法  欢迎大家评论一下   学习学习!

那么问题来了:

那要是 一只兔子只有九年的寿命呢  该怎么计算呢???

  • 17
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宇先生?。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值