1,什么是螺旋矩阵?
类似:
1
1 2
4 3
1 2 3
8 9 4
7 6 5
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
2,如何去打印出这个螺旋矩阵?
以4* 4 矩阵为例:
第一:打印上面一层
1 2 3 4
第二:打印右边一层
1 2 3 4
5
6
7
第三:打印下边一层
1 2 3 4
5
6
10 9 8 7
第四:打印左边一层
1 2 3 4
12 5
11 6
10 9 8 7
这样一圈就打印好了,然后重复上述步骤进行第二层的打印。
3,python 代码实现
#!/usr/bin/env python#-*- encoding: utf-8 -*-
'''@File :Spiralmatrix.py
@Description :
Your input is 1
1
Your input is 2
1 2
4 3
Your input is 3
1 2 3
8 9 4
7 6 5
Your input is 4:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
@CreatTime :2020/08/27 13:56:03
@Author :Yunhgu
@Version :1.0'''
defSpiralmatrix(Dimension):#定义一个二维矩阵
array_lists = [[0 for j in range(Dimension)] for i inrange(Dimension)]#定义开始的值
num = 1
#开始螺旋赋值
for i in range(Dimension//2+1): #0 1 2
#上边赋值
for j in range(i, Dimension-i):
array_lists[i][j]=num
num+= 1
#右边赋值
for j in range(i+1, Dimension-i):
array_lists[j][Dimension-i-1] =num
num+= 1
#下边赋值
for j in range(Dimension-i-2, i, -1):
array_lists[Dimension-i-1][j] =num
num+= 1
#左边赋值
for j in range(Dimension-i-1, i, -1):
array_lists[j][i]=num
num+= 1
#打印结果
for i inarray_lists:for j ini:print(j, end='\t')print()if __name__ == "__main__":
num= int(input('please input num:'))
Spiralmatrix(num)