这项任务是经典的:计算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只
负是从哪里来的?
发布于 2018-09-19 18:14:38
您使用的是int,新数字比Integer.MAX_VALUE更多。请使用long代替。
https://stackoverflow.com/questions/52411915
复制相似问题