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

+188 голосов
1.7m просмотров

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


Информатика | 1.7m просмотров
Дан 1 ответ
+157 голосов

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.0k баллов)
+148

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

+189

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