2016-07-07 111 views
0

你好,這可能是一個愚蠢的問題,但我卡住了。 我正在處理循環數字代碼。完成後,我把所有的整數在數組中,但之後有一些空的單元格在數組的開始必須清理或放入另一個數組與適當數量的元素。那麼如何在開始時擺脫0。Java把一個數組插入另一個

這裏是我的循環次數的代碼:

public static void main(String[] args) { 
     Scanner input = new Scanner(System.in); 

     int carry = 0; 

     int[] cyclic = new int[60]; 
     int lastDigit = input.nextInt(); 
     cyclic[cyclic.length - 1] = lastDigit; 



      for (int i = cyclic.length - 2; i >= 0; i--) { 

       cyclic[i] = lastDigit * cyclic[i + 1]; 
       cyclic[i] += carry; 
       if (cyclic[i] > 9) { 
        carry = cyclic[i]/10; 
        cyclic[i] %= 10; 
       } else 
        carry = 0; 
       if (cyclic[i]==1 & cyclic[i+1]== 0) 
        break; 
      } 

      for (int j = 0; j < cyclic.length; j++) 
       System.out.print(cyclic[j]); 
+0

你看過'System.arraycopy'函數嗎?我認爲這可能會幫助你執行你在那裏嘗試做的事情。 – JRSofty

回答

1

您正在填充元素60 [0到59]以相反的順序的排列,即從59然後58,然後57等。

打印時,您從索引0,1,2等打印它。

這是你應該修復的第一件事,從0,1,2填充它們或從59,58等打印它們。

爲什麼你得到0的原因是,當你說,

int[] cyclic = new int[60]; 

cyclic已經存儲了60個整數和所有的60個值以0 原始數據類型正在初始化被初始化爲0,當你爲它分配內存。 這就是爲什麼「陣列開始處的空單元格」在打印後顯示爲0。

+0

是的,謝謝,我知道,但是我的計算結果是以相反的形式寫的,所以這就是我所需要的,但最終我想擺脫0。 –