1

印刷しようとしています

****1
***22
**333
*4444
55555

私はJavaの初心者なので、印刷するだけです

11111
22222
33333
44444
55555        

私の解決策:

for (int i = 1 ; i <= 5 ; i++){
    for(int j = 1 ; j <= 5 ; j++){
        System.out.print(i);
    }
    System.out.println();
}

****
***
**
*

私の解決策:

 for(int i=1;i<=4;i++){
     for(int j=1;j<=5-i;j++){
         System.out.print("*");
     }
     System.out.println();
 }

それらをマージしようとしましたが、その方法がわかりません。かなり近いことはわかっていますが、ここで立ち往生しています。

4

5 に答える 5

3

問題を解決しようとする前に、問題を理解する必要があります。あなたの場合、

  • 列と行があるため、2 つのループがあります。
  • 列を生成するループ:
    • 行を生成するもの内にある必要があります
    • 星または数字のどちらを印刷するかを知っている必要があります
  • 行を生成するループ
    • その行に印刷する必要がある番号を知っている必要があります
    • その行にいくつの星を印刷する必要があるかを知る必要があります
于 2013-02-22T16:07:01.357 に答える
0

これを行う簡単な方法を次に示します。

for (int i = 1; i <= 5; i++) {
    for (int j = i; j < 5; j++)
        System.out.print("*");
    for (int k = 0; k < i; k++)
        System.out.print(i);
    System.out.println();
}
于 2013-03-28T04:24:05.953 に答える
-1
    int k = 4;
        for (int i = 1 ; i <= 5 ; i++){
            System.out.println(); 
            for(int j = 1 ; j <= 5 ; j++){
               if(j<=k){
                  System.out.print("*"); 
               }else{
                  System.out.print(i);
                  k--;
               }
            }
        }
于 2013-02-22T16:06:56.367 に答える
-3

i,j 変数が何を表しているかを理解する必要があります。法則を見つければ、この問題に簡単に取り組むことができます。

for(int i=1;i<=5;i++){
    for(int j=1;j<=5-i;j++){
        System.out.print("*");
    }
    for (int j=5-i+1;j<=5;j++){
        System.out.print(j);
    }
    System.out.println();
}
于 2013-02-22T16:12:59.887 に答える
-3
       int k = 4;

        for (int i = 1 ; i <= 5 ; i++){
            System.out.println(); 
            for(int j = 0 ; j <= 4 ; j++){
               if(j<k){
                  System.out.print("*"); 
               }else{
                  System.out.print(i);
                  if(j==4){
                      k--;
                  }
               }

            }
        }
于 2013-02-22T16:20:13.527 に答える