0

このコードを 5 つのスペースで開始し、すべての行にスペースを差し引いて 0 のスペースに減らすのに苦労しています。

public class Prob3 {

    public static void main(String[]args) {

        for (int x=1; x<=5; x++)
        {
            for (int y=5; y>=1; y--)
            {
            System.out.print(" ");
            }
        System.out.println(x);
        }
    }
}

現在の出力は次のとおりです (5 つのスペースである必要があります)。

      5
      4
      3
      2
      1

これまでの進歩には満足していますが、これに近づける必要があります。

        1
      2
    3
  4
5

かなり近づいた気がする

4

3 に答える 3

6

内部ループを次のように変更します。

for (int y=5; y > x; y--) 

各行の空白の数にパターンがあります。

  • 行 1 = 4 つの空白
  • 行 2 = 3 つの空白
  • 行 3 = 2 つの空白
  • すぐ..

したがって、パターンは、空白の数は です5 - rowNumber。あなたのコードでは、外側のループはrowNumber. そして、内側のループは5 - rowNumber回実行する必要があります。そのため、条件は次のようy > rowNumberになりますy > x

于 2013-10-02T20:55:22.377 に答える
1

内部ループを次のように変更します。

for (int y=5; y>x; y--)

完全なコード:

for (int x=1; x<=5; x++)
{
     for (int y=5; y>x; y--)
           System.out.print(" ");

     System.out.println(x);
}
于 2013-10-02T20:59:12.970 に答える
0

内部 for ループ式は次のようにする必要があります。

public class Prob3 {
    public static void main(String[]args) {
        for (int x = 0; x < 5; x++) {
            for (int y = (4 - x); y > 0; y--) {
                 System.out.print(" ");
            }
            System.out.println(x + 1);
        }
    }
}

問題は、毎回5から始めていたことです。内側のループの (4-x) は、最後の数字 (5) の先行スペースが 0 になるようにします。

于 2013-10-02T21:05:39.367 に答える