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

フィボナッチ数を計算する整数オーバーフロー。

この記事を読む

int: int データ型は、32 ビットの符号付き 2 の補数整数です。最小値は -2,147,483,648 で、最大値は 2,147,483,647 (包括的) です。

于 2013-01-02T19:03:13.660 に答える