-2

Javaで次をどのように印刷しますか:

  5
 55
555
 55
  5

if ステートメントを使用せずにネストされた for ループを使用します。

私がこれまでに持っているもの:

public static void main(String[] args) {
    for(int i = 1; i < 6; i++) {

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

            System.out.print("5");
        }

        System.out.println();

    }

}

ご覧のとおり、スペースは正しく表示されていますが、5各行の 's の数はまだわかりません。すべてのスペースに for ループを 1 つだけ使用する必要があると思いますか?

4

3 に答える 3

0

印刷するスペースの数をある点まで減らしてから再び増やしたい場合、1 つのオプションは次を使用することabs()です。

int n = 3;  // number of columns

for (int i = 0; i < 2 * n - 1; i++) {
    int k = Math.abs(n - i - 1);

    for (int j = 0; j < k; j++)
        System.out.print(' ');

    for (int j = 0; j < n - k; j++)
        System.out.print('5');

    System.out.println();
}
  5
 55
555
 55
  5

ここで、kは出力したいスペースの数です (したがって、 は 2 番目の-loopで見られるようn-kに s の数です)。に近づくにつれて減少し、その時点で になります。さらに増加するにつれて、内側の用語はますます負になり、その絶対値が再び増加し始めることを意味します。5forkin - 10iabs()

于 2013-08-28T13:57:59.973 に答える