我刚刚开始学习数组,所以如果可以,请用外行的术语解释。
在阵列的第50个周期左右,负数开始出现,考虑到代码,这似乎是荒谬的。我正在使用eclipse运行它(截至12月19日的最新版本)。
public class Array1
{
/*
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
int[] tree = new int[1000];
tree[0] = 1;
tree[1] = 2;
int j = 0;
for (j = 1; j<999; j++)
{
tree[j+1] = tree[j] + tree[j-1];
}
for (int i=1; i<=150; i++)
{
System.out.println(tree[i]);
}
}
}
答案 0 :(得分:3)
你在计算的是Fibonacci数的序列,它们已知指数增长。因此,你最终会溢出你的int,这会导致它变为负数。
答案 1 :(得分:3)
整数溢出计算斐波纳契数。
int: int数据类型是32位带符号的二进制补码整数。它的最小值为-2,147,483,648,最大值为2,147,483,647(含)。