Помогите решить задачу ** Python Заполните матрицу следующим образом: в правой...

+188 голосов

Помогите решить задачу на Python Заполните матрицу следующим образом: в правой четверти, справа от пересечения главной и побочной диагонали, стоят единицы; на обрамляющих эту область частях главной и побочной диагонали стоят нули; остальная матрица заполнена двойками.Формат входных данных Программа получает на вход целое число n в пределах от 3 до 100 - количество строк и столбцов в матрице. Формат выходных данных Программа выводит на экран матрицу в указанном виде. Числа в строке разделяются пробелом. Значения функции обязательно получать только с помощью генератора. Замените многоточие в предзагруженном коде на требуемый генератор. Кроме этого ничего в программе не изменяйте.


спросил от в категории Информатика
1 Ответ
+157 голосов
ответил от Отличник (7.2k баллов)

Python 3.

Код:

  • n = int(input())
  • lst = [[0 if x > n / 2 - 1 and (x == y or n - x - 1 == y) else 1 if x > n / 2 - 1 and (x > y > n - x - 1) else 2 for x in range(n)] for y in range(n)]
  • for row in lst:
  •    print(*row)

оставил комментарий от Отличник (7.2k баллов)
+148

Это было лучшее, что могло произойти с этим кодом)

оставил комментарий от
+189

Большое спасибо, решение прошло.

...