3*3螺旋矩阵:
1 2 3
8 9 4
7 6 5
实现代码:
def spiral(n):
matrix = [[0] * n for _ in range(n)]
# 顺时针方向(右,下,左,上)
dx = [0, 1, 0, -1]
dy = [1, 0, -1, 0]
x = y = 0
dn = 0 # 方向指针0;向右填充,1:向下填充,2:向上填充,3:向上填充
for i in range(1, n * n + 1): # 从1开始赋值,一直到n*n
matrix[x][y] = i
temp_x = x + dx[dn]
temp_y = y + dy[dn]
if 0 <= temp_x < n and 0 <= temp_y < n and matrix[temp_x][temp_y] == 0:
x = temp_x
y = temp_y
else:
dn = (dn + 1) % 4
x += dx[dn]
y += dy[dn]
return matrix
if __name__ == '__main__':
n = int(input("输入矩阵n值:"))
matrix = spiral(n)
for i in range(n):
print(matrix[i])
运行结果: