n = 7 # Розмір матриці m = 7 matrix = [[0] * n for _ in range(m)] # Початкова позиція і напрямок руху row, col, num = 0, 0, 1 right, down, left, up = True, False, False, False # Заповнення матриці while num <= n * m: matrix[row][col] = num num += 1 if right: if col < n - 1 and matrix[row][col +1] == 0: col += 1 else: right, down = False, True elif down: if row < m - 1 and matrix[row + 1][col] == 0: row += 1 else: down, left = False, True elif left: if col > 0 and matrix[row][col - 1] == 0: col -= 1 else: left, up = False, True elif up: if row > 0 and matrix[row - 1][col] == 0: row -= 1 else: up, right = False, True # Виведення матриці for row in matrix: print(row)
Standard input is empty
[1, 2, 3, 4, 5, 6, 8] [28, 29, 30, 31, 32, 34, 9] [26, 48, 49, 0, 0, 35, 10] [25, 46, 0, 0, 0, 36, 11] [24, 45, 0, 0, 0, 37, 12] [23, 44, 42, 41, 40, 39, 13] [22, 20, 19, 18, 17, 16, 15]