iot9ee602d3c4 iot9ee602d3c4

Зарегистрирован с 04.08.2020
Комментарии
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)
Ответить