[英]Java Index Out Of Bounds Error on Pascal Triangle
我必須創建一個Pascal Triangle,當我運行代碼時,它給我一個數組超出范圍錯誤。 請幫忙。 我想我使用了一個很好的邏輯,但我無法得到結果。
import java.io.*;
public class Question_4
{
public static void main (String[] args)throws IOException
{
System.out.println("Enter the value of N");
InputStreamReader x = new InputStreamReader (System.in);
BufferedReader y = new BufferedReader (x);
int n = Integer.parseInt (y.readLine ());
int ar [] [] = new int [n] [(2*n)-1];
int previous = 0;
int next = 0;
int se = 0;
for (int row = 0 ; row<n ; row++)
{
se = (n - row) - 1;
for (int column = 0 ; column < ((2*n)-1) ; column ++)
{
try
{
previous = ar [row-1] [column+1];
next = ar [row-1] [column +3];
}
finally
{
if (column < se)
ar [row] [column] = 0;
else if (column > (n-se))
ar [row] [column] = 0;
else if (row == 0 || row == 1)
ar [row] [column] = 1;
else
ar [row] [column] = (previous + next);
}
}
}
for (int i = 0;i<n;i++)
{
for (int j = 0; j<((2*n)-1);j++)
System.out.print (ar [i] [j]);
System.out.println ();
}
}
}
此行中的問題:
previous = ar [row-1] [column+1];
在第一次外部循環時,行值為0
,所以0 - 1
為-1
,這在數組的無效位置。
你聲明了這個數組:
int ar [] [] = new int [n] [(2*n)-1];
然后你有這個循環:
for (int column = 0 ; column < ((2*n)-1) ; column ++)
這意味着該列在某些時候將等於ar [] []中最后一個單元格的索引。 在你的循環中你打電話:
previous = ar [row-1] [column+1];
next = ar [row-1] [column +3];
這就是你得到indexOutOfBoundsException的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.