2016-05-17 94 views
-1

我的2D Array遞歸有問題。它應該打印此數組參考遞歸

* 
** 
*** 
**** 
***** 

,但我得到的只有這個:

***** 
***** 
***** 
***** 
***** 

我想這是因爲我寫的同一個數組每次和覆蓋舊的結果。這裏是我的代碼:

public class filleArrayRec { 

    public static void main(String[] args) { 
     String[][] array = new String[5][5]; 

     fillArr(array, 0); 

     for (String[] i : array) { 
      for (String j : i) { 
       System.out.print(j); 
      } 
      System.out.println(); 
     } 
    } 

    private static void fillArr(String[][] array, int index) { 
     if (index < array.length) { 
      array[index] = fillArrayLine(array[index], 0); 
     } else { 
      return; 
     } 

     fillArr(array, index+1); 
    } 

    private static String[] fillArrayLine(String[] array, int index) { 
     if (index < array.length) { 
      array[index] = "*"; 
     } else { 
      return array; 
     } 

     return fillArrayLine(array, index+1); 
    } 

} 
+2

'(指數

+0

的可能的複製[創建三角星只使用遞歸](http://stackoverflow.com/questions/2717111/create-a-triangle-out-of-stars-using-only-recursion) –

回答

0

既然你初始化arraynew String[5][5],所有呼叫fillArrayLine結束了路過五元素的數組,從而填補一個正方形。

new String[5][]替換初始化,並設置array[i],當您去:

array[index] = fillArrayLine(new String[index+1], 0); 
+0

哇感謝您的解決方案! –