2016-08-01 11 views
0

0から始まり9で終わるピラミッドを印刷したいときは、9のときにプログラムを0から9まで繰り返す必要があります。ここで 0から始まる数字のピラミッドが9で終わる

は、私が試したものです:

public static void main(String[] args) { 

    for (int i = 0; i < 10; i += 2) { 
     for (int j = 0; j < 10 - i; j += 2) { 
      System.out.print(" "); 
     } 
     for (int k = 0; k <= i; k++) { 
      System.out.print(" " + k); 
     } 
     System.out.println(); 
    } 
}   

 0 
    0 1 2 
    0 1 2 3 4 
    0 1 2 3 4 5 6 
    0 1 2 3 4 5 6 7 8 

を印刷

が、私はこれを必要とする。..

  0 
     1 2 3 
     4 5 6 7 8 
    9 0 1 2 3 4 5... 
+1

そして、何が何を得るのですか? – Jens

+0

http://i.stack.imgur.com/wprNW.png私はこれを得ます.. –

+0

ヒント:なぜあなたはいつも0からkを印刷しますか? – venki421

答えて

1

あなたはi印刷0 1 2 3..毎回の反復ごと0から始まるkを印刷しています。代わりに0に初期化されたローカル変数を作成して印刷し、毎回1ずつ増やしてください。あなたの場合、counter値が9より大きい場合、0からカウンタを開始したい場合は、if(counter > 9) counter = 0;を含めることでチェックを追加できます。以下のコードを追加しました:

int counter = 0; 
for (int i = 0; i < 10; i += 2) { 
for (int j = 0; j < 20 - i; j++) { 
    System.out.print(" "); 
} 
for (int k = 0; k <= i; k++) { 
    System.out.print(" " + counter++); 
    if(counter > 9) counter = 0; 
} 

System.out.println(); 
} 

出力

   0 
      1 2 3 
     4 5 6 7 8 
     9 0 1 2 3 4 5 
    6 7 8 9 0 1 2 3 4 

DEMO

+0

なぜ 'j <20'ですか?それだけでピラミッドをくぼみ、欲しくないかもしれません。また、カウンタを増やす代わりに 'System.out.print(" "+(counter ++%10));'を実行することもできます。 – Thomas

+0

良い仕事(NOT)。今すぐコードをコピーして、自分のコードをデバッグする学習経験を忘れてしまいます。 –

+0

@Thomasはい 'j <20 'は省略可能です余分なスペースのために追加しました。私は最初に心に入ったコードを掲載しましたが、他のソリューションに感謝します。 – silentprogrammer

0

変数を設定して毎回増分することができます。

public static void main(String[] args) { 
    int count=0; 
    for (int i = 0; i < 10; i += 2) { 
     for (int j = 0; j < 10 - i; j += 2) { 
      System.out.print(" "); 
     } 
     for (int k = 0; k <= i; k++) { 
      System.out.print(" " + count++); 
      if(count>9) 
       count=count%10; 
     } 

     System.out.println(); 
    } 
} 
関連する問題