2016-07-16 5 views
1

中央揃えの三角形と逆さまの三角形を印刷したい。出力はこれでなければなりません。中央揃えの三角形と逆さまの三角形をJavaで印刷

  1 
      121 
     12321 
     1234321 
     123454321 
     1234321 
     12321 
      121 
      1 

その正しく示す数字と三角形の上半分が正しく整列中心が、中央alignment.Belowにおける三角形のその表示されていない下半分は私のコードです。

public class Pro1point1 
{ 
    public static void main(String[] args){ 
    int i,j,k,l,space=29; 
    for(i=1;i<=5;i++){ 
    //First print the upper half triangle. 
    for(j=1;j<=space;j++){ 
     System.out.print(" "); 
    } 
    for(k=1;k<=i;k++){ 
     System.out.print(k); 
    } 
    for(l=i-1;l>=1;l--){ 
     System.out.print(l); 
    } 
    space--; 
    System.out.println(); 
    } 
    //Now Print the lower half triangle. 

    space=29; 
    for(i=4;i>=1;i--){ 
    for(j=space;j>=1;j--){ 
    System.out.print(""); 
    } 
    for(k=1;k<=i;k++){ 
    System.out.print(k); 
    } 
    for(l=i-1;l>=1;l--){ 
    System.out.print(l); 
    } 
    space++; 
    System.out.println(); 
    } 
} 
} 

このように表示されます。

My Output is like this

答えて

2

と交換して、空の文字列の代わりに空白文字を印刷System.out.print("");

お知らせです使用する必要があります:

System.out.print(" "); 

代わりの

System.out.print(""); 

更新:

あなたは "デバッグ" System.out.print("X")spaceのためのより低い値を使用することによって相殺この魔法のことができます。すべての行に何冊のXが印刷されているかを見てください。

中間行の後にはどうなりますか? space=29;space+=2;に置き換えた場合はどうなりますか?

+0

ありがとうございました。今働いている。ビット混乱なぜ私たちはスペース= 26を取ったのですか?あなたは私を説明できますか? –

+0

私は私の答えを更新しました.. – sinclair

0

問題は、この行にあなたがループする第二にタイプミスがあり

System.out.print(" ");

+0

ああはい。正しい。しかし、それはまだ中心から三角形の右半分のわずかに下半分を示しています。 –

関連する問題