def generate_spiral_matrix(n):
matrix = [[0 for _ in range(n)] for _ in range(n)]
top, bottom = 0, n - 1
left, right = 0, n - 1
num = 1
while top <= bottom and left <= right:
# Fill top row
for i in range(left, right + 1):
matrix[top][i] = num
num += 1
top += 1
# Fill right column
for i in range(top, bottom + 1):
matrix[i][right] = num
num += 1
right -= 1
# Fill bottom row
if top <= bottom:
for i in range(right, left - 1, -1):
matrix[bottom][i] = num
num += 1
bottom -= 1
# Fill left column
if left <= right:
for i in range(bottom, top - 1, -1):
matrix[i][left] = num
num += 1
left += 1
return matrix
n = 3
spiral_matrix = generate_spiral_matrix(n)
# Print the matrix
for row in spiral_matrix:
print("\t".join(str(val) for val in row))
'''
run
1 2 3
8 9 4
7 6 5
'''