04 августа 2020
вариант первой задачи на Python (адаптируемый под вторую)
def print_m(matrix):
for row in matrix:
for col in row:
print(f"{col:4}",end=' ')
print()
def snake(n):
if n<=0:
print("N должно быть > 0")
return
matrix = [[(x == y and 1 or 0) for y in range(n)] for x in range(n)]
depth = ((n - 1) // 2) + 1
around = []
for i in range(depth):
right = [[x, y] for x in [i] for y in range(n - i)[i:n - i - 1:]]
down = [[x, y] for x in range(n - i)[i:n - i - 1:] for y in [n - i - 1]]
left = [[x, y] for x in [n - i - 1] for y in range(n - i)[n - i - 1:i:-1]]
up = [[x, y] for x in range(n - i)[n - i - 1:i:-1] for y in [i]]
around += right + down + left + up
if i == n - i - 1:
around += [[i,i]]
count = 1
for j in around:
matrix[j[0]][j[1]] = count
count +=1
print_m(matrix)
snake(11)
Ответить
Пожаловаться