2017-01-14 7 views
-4

再帰の理解に問題があります。 私はここで私の再帰は良いですか?

cccccc 
cbbbbc 
cbaabc 
cbbbbc 
cccccc 

のような文字列は、(int型の代わりに文字のと)同様のコードは、私が書かれていることですが、再帰なしにする必要があります。ここで

for (int x = 2; x < tab.length/2 + 1; x++) { 
     for (int i = x; i < tab.length - x; i++) { 
      for (int j = x; j < tab[i].length - x; j++) { 
       tab[i][j] = x; 
      } 
     } 
    } 

は、このタスクのために私のコードです:

public static void dorec(char[][] a,int poz){ 
    int max = (a.length/2); 

    for(int i = poz; i< a.length-poz;i++){ 
     for(int j = poz;j<a[i].length-poz;j++){ 
      a[i][j]=(char)(97+poz);}} 

    if(poz < max){ 

     dorec(a,poz+1); 
    } 

私は、はい、私は他の方法でこれを行うことができますどのようにないアイデア(私の方法は再帰でない?)

+0

私は考えますこのコードは出力 –

+0

最初にdorecメソッドをどのように呼び出すのですか? –

+0

dorec(タブ、0)@Mohsen_Fatemi – klm

答えて

0

を持っていませんそれが動作しますdorec(tab,0)この方法でメソッドを呼び出していますが、内dorec(tab,poz+1)を呼び出しているので、逆の順序

では、再帰的です方法

怒鳴る書かれたとして、それは動作します:

aaaaaa aaaaaa aaaaaa aaaaaa aaaaaa

そして--->

aaaaaa abbbba abbbba abbbba aaaaaa

そして--->

aaaaaa abbbba abccba abbbba aaaaaa

+0

@klmは役に立ちましたか? –

+0

はい、ありがとう;) – klm

+0

あなたを歓迎します;)) –

関連する問題