0

これに似た投稿があることは理解していますが、回答に基づいて、現在のクラスに回答を適用することも、残りの回答を理解することもできません。

このような出力を作成するネストされた「for ループ」を使用してプログラムを作成する必要があります (ちょうど対称)。私はこれを2晩全体で機能させようとしてきましたが、理解できません...

               1 
             1 2 1 
            1 2 4 2 1 
          1 2 4 8 4 2 1 
        1 2 4 8 16 8 4 2 1 
      1 2 4 8 16 32 16 8 4 2 1 
   1 2 4 8 16 32 64 32 16 8 4 2 1 
1 2 4 8 16 32 64 128 64 32 16 8 4 2 1 

助けていただければ幸いです!!!

public class PyramidOfDoom { 
    public static void main(String[] args) 
        int k = 2; 
        int totalWidth = 8; 
        for (int row = 1; row <= totalWidth; row++) { 
            for (int col = 1; col <= totalWidth; col++) { 
                if (col <= totalWidth - row) { 
                    System.out.print(" "); 
                } else { 
                    System.out.print(k);; 
                } 
            } 
            System.out.println(); 
        } 
    } 
}
4

2 に答える 2

1

1.先頭のスペースを印刷する 2.増加する数字を印刷する 3.減少する数字を印刷する 4.末尾のスペースを印刷する 5.新しい行を印刷するという簡単な手順で実行できると思います。

サンプルコード(コンセプト)は以下の通り。

    int row = 10;
    for(int i=1; i<=numRow ; i++){
       int num = 1;
       for(int j=0; j<numRow- i; j++ ){
           System.out.print("   ");
       }
       for(int j=numRow-i+1; j<=numRow ; j++ ){
           System.out.print(num+" ");
           num=num*2;
       }
       num=num/2;
       for(int j=numRow+1; j<numRow+i; j++ ){
           num=num/2;
           System.out.print(num+" ");
       }
       for(int j=numRow+i+1; j<=numRow*2; j++ ){
           System.out.print("  ");
       }
       System.out.print("\n");
    }
于 2012-10-11T01:09:43.050 に答える
0

あなたはまったく変わっていませんk。行の中央に到達するまで2を掛け続けてから、2で割り始める必要があります。現状では、System.out.println(k)操作しない場合、2以外のものを出力することをどのように期待できますか?:)

また、には2つのセミコロンがありますSystem.out.println(k);;。それは私には奇妙に思えますが、実際にはコンパイルするのは理にかなっていると思います。

于 2012-10-11T01:13:12.047 に答える