2015-12-25 4 views
-3
import java.math.BigInteger; 

public class PascalsTriangle { 

    public int row = 0; 
    public BigInteger[][] pascal = new BigInteger[ (int) (row +1)][]; 

    public PascalsTriangle(int dimension) { 
     row = dimension + 2; 
     pascal = new BigInteger[row +1][]; 
     pascal[1] = new BigInteger[1 + 2]; 
     pascal[1][1] = new BigInteger("1"); 

     for (int i = 2; i <= row; i++) { 
      pascal[i] = new BigInteger[i + 2]; 

      for (int j = 1; j < pascal[i].length - 1; j++) { 
       pascal[i][j] = pascal[i - 1][j - 1].add(pascal[i-1][j]) ; 
      } 
     } 
    } 

    public BigInteger getface(int row, int column) { 
     return pascal[row][column]; 
    } 
} 

Я пытался напечатать Треугольник Паскаля, но требование целое число, для меня очень высока, то есть больше, чем максимальное значение в long, так что я использовал BigInteger. Но я получаю исключение NullPointerException в той части, где я добавляю BigIntegers в класс PascalsTriangle. Это правильный способ добавить 2-мерный массив BigInteger?Как добавить два BigIntegers с вне получать исключения нулевого указателя

ответ

1

нулевой указатель не из BigInteger.add

это из индекса массива

+0

Как я Минимизировать эту ошибку –

+0

@Deepesh, по не индексировать за пределы массива. Убедитесь, что вы знаете, какие значения 'i' и' j' имеют всюду, а также размеры и содержимое ваших массивов (особенно массивы, указывающие на другие массивы). –

+0

Он работал правильно, когда у меня были длинные массивы. Но когда я изменил его на biginteger, я начал получать исключение нулевого указателя. –