This question already has answers here:
What is an integer overflow error?
(9个答案)
2年前关闭。
这个任务很经典:考虑每个成熟的母猪会给三对幼兔,计算30个月后的兔对数量。
代码如下:
这是问题所在:
最初,一切都很好:
月:2成熟1年轻0
月:3成熟1年轻3
月:4成熟4年轻3
月:5成熟7年轻12
从第28个月开始的输出如下:
月:28成熟1674257764年轻-2113786333
减号从哪里来?
(9个答案)
2年前关闭。
这个任务很经典:考虑每个成熟的母猪会给三对幼兔,计算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
。
10-07 16:59