import numpy
# 使用递归解决
def helixMatrix(matrix,x_cur,y_cur,number,n):
if n==0:
print(matrix)
return 0
if n==1:
matrix[x_cur][y_cur]=number
print(matrix)
return 0
# 上
for i in range(n):
matrix[x_cur][y_cur+i] = number
number +=1
# 右
for i in range(n-1):
matrix[x_cur+i+1][y_cur+n-1] = number
number+=1
# 下
for i in range(n-1):
matrix[x_cur+n-1][y_cur+n-2-i] = number
number+=1
# 左
for i in range(n-2):
matrix[x_cur+n-2-i][y_cur] = number
number+=1
helixMatrix(matrix,x_cur+1,y_cur+1,number,n-2)
if __name__ == '__main__':
n = int(input("请输入数值:"))
# 初始化数组
if not isinstance(n, int) or n <= 0:
print("输入参数有误")
raise ("参数有误")
matrix = numpy.zeros((n, n))
# x_cur相当于是x方向的坐标
x_cur = 0
# y_cur相当于是y方向的坐标
y_cur = 0
# number是在递归中传递的数值
number = 1
helixMatrix(matrix,x_cur,y_cur,number,n)
python实现螺旋矩阵
最新推荐文章于 2024-06-25 19:27:31 发布