Помогите созадть матрицу n на n и правильно ее заполнить
Создается матрица n на n главную диагональ заполнить 0 а две рядом 2 потом еще 2 рядом с этими 3 и т.д. я просто не понимаю как через цикл их заполнять вот мой код знаю что тут неверно:
n = int(input())
a = [[0] * n for i in range(n)]
for i in range(n):
for j in range(i - n + 1, n):
a[i][j] = 2
for i in range(n):
a[i][i - n] = 0
for r in a:
for e in r:
print(e, end=' ')
print()
Ответы (2 шт):
Автор решения: slippyk
→ Ссылка
n = 7
tmp = [0] + list(range(2, n + 1))
result = [tmp[1:i + 1][::-1] + tmp[:n - i] for i in range(n)]
for ls in result:
print(' '.join(map(str, ls)))
# 0 2 3 4 5 6 7
# 2 0 2 3 4 5 6
# 3 2 0 2 3 4 5
# 4 3 2 0 2 3 4
# 5 4 3 2 0 2 3
# 6 5 4 3 2 0 2
# 7 6 5 4 3 2 0
Автор решения: Алексей Р
→ Ссылка
n = int(input('n= '))
a = [[0] * n for i in range(n)]
for i in range(0, n):
for j in range(1, n - i):
a[j - 1][i + j] = a[i + j][j - 1] = i + 2
for el in a:
print(*el)
n= 5
0 2 3 4 5
2 0 2 3 4
3 2 0 2 3
4 3 2 0 2
5 4 3 2 0