猿问

为什么输出中有负数?

任务是经典的:计算 30 个月后兔子对的数量,考虑到每个成熟的幼崽给出三对幼崽。代码如下:


    int young = 1;

    int mature = 0;  

    for(int n=2; n<=31; n++)

    {

        int take_away=young;

        young=3*mature; 

        mature=mature+take_away;

        System.out.println("month:"+n+"\t"+"mature\t"+mature+"\t"+"young\t"+young+"\n");

        if(n==31)System.out.println(mature+take_away);

    }

这是问题所在:

最初一切都很好:


月:2 成熟 1 年轻 0


月:3 成熟 1 年轻 3


月份:4 成熟 4 年轻 3


月份:5 成熟 7 年轻 12


从第 28 个月开始输出如下所示:


月份:28 成熟 1674257764 年轻 -2113786333


减号从何而来?


守着一只汪
浏览 143回答 1
1回答

郎朗坤

您使用的int和新的数量超过Integer.MAX_VALUE.&nbsp;请long改用。
随时随地看视频慕课网APP

相关分类

Java
我要回答