1

我刚开始学习数组,所以如果可以的话,请用外行的术语解释一下。

在数组的第 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]);
        }
    }
}
4

2 回答 2

3

您正在计算的是斐波那契数列,这些数列会呈指数增长。因此,您最终会溢出您的 int,这会导致它变为负数。

于 2013-01-02T19:02:01.290 回答
3

Integer overflow computing fibonacci numbers.

Read this article

int: The int data type is a 32-bit signed two's complement integer. It has a minimum value of -2,147,483,648 and a maximum value of 2,147,483,647 (inclusive).

于 2013-01-02T19:03:13.660 回答