2013-01-02 45 views
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]); 
     } 
    } 
} 
+0

聽起來像整數溢出。 – SLaks

+1

此標籤不合適。這個問題幾乎肯定與數組數據結構無關,您使用的語言會不會是更好的標籤? –

回答

3

你所計算是斐波那契數被知道成倍增長的序列。因此,你最終溢出你的整數,這會導致它變成負值。

3

整數溢出計算斐波那契數。

Read this article

INT: int數據類型是一個32位有符號的二進制補碼整數。它的最小值爲-2,147,483,648,最大值爲2,147,483,647(含)。

相關問題