0

パスカルの行の三角形を評価するメソッドを作成しましたn。ただし、メソッドをテストすると、次のエラーが表示されます。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1

コードは次のとおりです。

public static int[] PascalTriangle(int n) {
    int[] pt = new int[n + 1];
    if (n == 0) {
        pt[0] = 1;
        return pt;
    }
    int[] ppt = PascalTriangle(n - 1);
    pt[0] = pt[n] = 1;
    for (int i = 0; i < ppt.length; i++) {
        pt[i] = ppt[i - 1] + ppt[i];
    }
    return pt;
}

問題を解決するためにコードを編集する方法についてのアイデアがあれば教えてください。

4

5 に答える 5

0

このコードでは:

pt[0] = pt[n] = 1;
for(int i = 0; i < ppt.length; i++)
{
    pt[i] = ppt[i-1] + ppt[i];
}

問題は、iが 0 のときに にアクセスしようとしていることppt[i-1]ですppt[-1]。whenが 0 の場合は、ループの前に既に設定しているため、iを設定するステートメントを実行する必要はありません。0 ではなく 1 に初期化してみてください。pt[i]pt[0]i

于 2013-11-18T05:14:22.137 に答える