2015-12-25 39 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。但是,我在PascalsTriangle類中添加BigIntegers的部分獲得了NullPointerException。這是添加2維BigInteger數組的正確方法嗎?如何添加兩個BigInteger與出得到一個空指針異常

回答

1

空指針是不是從BigInteger.add

它從數組索引

+0

是如何儘量減少這種錯誤 –

+0

@Deepesh,通過不索引超過數組的邊界。確保你知道'i'和'j'到處都有什麼值,數組的大小和內容(特別是指向其他數組的數組) –

+0

當我只有很長的數組時,它正常工作。但是當我將它改爲biginteger我開始得到空指針異常。 –