2016-05-17 22 views
-1

2D配列の再帰に問題があります。これは、この配列参照の再帰

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

印刷する必要がありますが、私はこれだけを取得:

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

私は同じ配列毎回への書き込みと、古い結果を上書きするので、それはだと思います。あなたは、このように広場を埋め、fillArrayLine終了まで5要素の配列を渡すには、すべてのコールをnew String[5][5]であなたの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

:ここに私のコードです。

new String[5][]で初期化を置き換え、そしてあなたが行くようにarray[i]を設定します。

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

あなたのソリューションのためにうれしいありがとう! –