该任务是经典的:计算 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
负号从何而来?
最佳答案
您使用 int
并且新数字大于 Integer.MAX_VALUE
。请改用long
。
关于java - 为什么输出中有负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52411915/