Мини-урок · перед практикой

Диагонали, параллельные главной

Значение клетки равно расстоянию между её индексами.

Как к ней подойти

Разберитесь, как работать со строками и столбцами двумерного массива, не путая индексы.

Коротко о теме

Двумерный массив читают по двум координатам: сначала строка, затем столбец. Вложенные циклы обходят все ячейки или только нужную часть таблицы. Сверьте размеры массива и границы обоих индексов.

Ключевая идея · Модуль разности

На главной диагонали индексы равны, на соседних отличаются на один.

Проверьте перед запуском

  • Не создавайте матрицу через [[0] * n] * n: строки будут общими.

Сравните свой подход

Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.

Ваше принятое решение

Рекомендуемое решение: Модуль разности

На главной диагонали индексы равны, на соседних отличаются на один.

n = int(input())
a = [[abs(i - j) for j in range(n)] for i in range(n)]
for row in a:
    print(*row)

Время: O(n²). Память: O(n²).

Другой способ: Заполнение симметричных диагоналей

Для каждого расстояния заполняем две симметричные диагонали одним значением.

n = int(input())
a = [[0] * n for _ in range(n)]
for distance in range(1, n):
    for i in range(n - distance):
        a[i][i + distance] = distance
        a[i + distance][i] = distance
for row in a:
    print(*row)

Время: O(n²). Память: O(n²).