Шаблон числа Java два треугольника рядом, чтобы сделать квадрат / прямоугольник - PullRequest
2 голосов
/ 28 сентября 2019

Я хочу, чтобы выходные данные выглядели так:

image

Как я могу расположить эти циклы, чтобы получить комбинацию из двух треугольников?И как я могу улучшить свой код.Новое в JAVA: -)

    for (int i = 1; i<=10; i++ ) {
        for (int j = 1; j <= i; j++) {
            System.out.print(j);
        }
        System.out.println();
    }
    for (int count = 1; count <= 10; count++) {
        for (int index=1; index < count+1; index++)
            System.out.print(" ");

        for (int num=10; num >count; num--) {
            System.out.print(num);
        }   
        System.out.println();
    }

1 Ответ

4 голосов
/ 28 сентября 2019

Как насчет этого?

for (int row = 1; row <= 10; row++) {
    for (int j = 1; j <= row; j++) {
        System.out.print(j + " ");
    }
    System.out.print("  ");
    for (int j = 10; j >= row; j--) {
        System.out.print(j + " ");
    }
    System.out.println();
}

Вывод:

1   10 9 8 7 6 5 4 3 2 1 
1 2   10 9 8 7 6 5 4 3 2 
1 2 3   10 9 8 7 6 5 4 3 
1 2 3 4   10 9 8 7 6 5 4 
1 2 3 4 5   10 9 8 7 6 5 
1 2 3 4 5 6   10 9 8 7 6 
1 2 3 4 5 6 7   10 9 8 7 
1 2 3 4 5 6 7 8   10 9 8 
1 2 3 4 5 6 7 8 9   10 9 
1 2 3 4 5 6 7 8 9 10   10 

Объяснение - внешний цикл перебирает строки, поэтому я переименовал i в row для ясности.Первый внутренний цикл не отличается от вашего кода - он отвечает за печать чисел до диагонали.Затем мы печатаем двойной пробел (System.out.print(" ")), а второй цикл печатает оставшиеся числа, начиная с 10 и заканчивая номером строки.

В другой заметке лучше отформатировать код,Отступы действительно помогают с удобочитаемостью и пониманием.

Например, ваш первый цикл выглядит так:

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

Но должен выглядеть так:

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

Этотот же код, но в отформатированной версии гораздо легче увидеть, что второй оператор System.out.println следует за внутренним for и что заключительная закрывающая скобка закрывает внешний цикл for, а не что-то еще.

...