Помогите пожалуйста разобраться с задачей
Не могу разобраться как вывести матрицу.
Задача:
Заполнить прямоугольный массив целыми числами начиная с нуля спиралью, закручивающейся по часовой стрелке из левого верхнего угла к центру массива.
n = 7
m = 10
n = int(input())
m = int(input())
mat = [[0]*n for i in range(m)]
st, m = 0, 0
mat[n//2][m//2]=n*m
for v in range(n//2):
for i in range(n-m):
mat[v][i+v] = st
st+=1
i+=1
for i in range(v+1, n-v):
mat[i][-v-1] = st
st+=1
i+=1
for i in range(v+1, n-v):
mat[-v-1][-i-1] =st
st+=1
for i in range(v+1, n-(v+1)):
mat[-i-1][v]=st
st+=1
i+=1
v+=1
m+=2
for i in mat:
print(*i)
Ответы (1 шт):
Автор решения: user372410
→ Ссылка
from math import ceil
rows = int(input('Count of rows '))
cols = int(input('Count of cols '))
mat = [[0]*cols for i in range(0, rows)]
r = 0
cur = 0
while(r <= ceil(rows/2)):
for i in range(r, rows - r):
mat[r][i] = cur
cur+=1
for i in range(r + 1, rows - r - 1):
mat[i][rows - r - 1] = cur
cur += 1
for i in range(r, rows - r - 1):
mat[rows - r - 1][cols - i - 1] = cur
cur+=1
for i in range(r, rows - r - 1):
mat[rows - i - 1][r] = cur
cur+=1
r+=1
for row in mat:
print(row)
