def generate_spiral_matrix(N):
matrix = [[0] * N for _ in range(N)]
num = 1
top = 0
bottom = N - 1
left = 0
right = N - 1
while num <= N * N:
# Вправо
for i in range(left, right + 1):
matrix[top][i] = num
num += 1
top += 1
# Вниз
for i in range(top, bottom + 1):
matrix[i][right] = num
num += 1
right -= 1
# Влево
for i in range(right, left - 1, -1):
matrix[bottom][i] = num
num += 1
bottom -= 1
# Вверх
for i in range(bottom, top - 1, -1):
matrix[i][left] = num
num += 1
left += 1
return matrix
def print_matrix(matrix):
for row in matrix:
print(" ".join(map(str, row)))
if __name__ == "__main__":
N = int(input("Введите число N (0 < N < 1000): "))
if N <= 0 or N >= 1000:
print("Число N должно быть больше 0 и меньше 1000")
else:
spiral_matrix = generate_spiral_matrix(N)
print("Квадратная спиральная матрица:")
print_matrix(spiral_matrix)