Как напечатать этот шаблон в Java, я понятия не имею, как - PullRequest
1 голос
/ 23 июня 2019

Я не могу напечатать этот шаблон:

1 2 3 4 *

1 0 0 * 5

1 0 * 0 5

1 * 0 0 5

* 2 3 4 5

Я пытался напечатать, но только в строке:

публичный класс Pattern {

public static void main(String[] args) { 
        for(int j=1;j<=5;j++)
        {
            if(j>4) {
                System.out.print("*");
            }
            else {
                System.out.print(j);

            }
        }
    }
}

1 Ответ

0 голосов
/ 24 июня 2019

Давайте попробуем рассмотреть логику этого вывода:

У вас есть матрица NxN с номерами строк и столбцов 1..N.

  • Если вы находитесь на вторичной диагонали (то есть строка + столбец = N + 1), выведите *
  • Иначе, если вы находитесь на границах (т. Е. Строка или столбец равен 1 или N), выведите номер столбца
  • В противном случае выведите 0

Теперь вам просто нужно преобразовать эту логику в Java:

int size = 5;

for (int i = 1; i <= size; ++i) {
    for (int j = 1; j <= size; ++j) {
        char ch;
        if (i + j == size + 1) {
            ch = '*';
        } else if (i == 1 || i == size || j == 1 || j == size) {
            ch = (char) ('0' + j);
        } else {
            ch = '0';
        }
        System.out.print(ch + " ");
    }
    System.out.println();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...