Python实现螺旋矩阵
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 ''' def Spiralmatrix(Dimension): # 定义一个二维矩阵 array_lists = [[0 for j in range(Dimension)] for i in range(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 in array_lists: for j in i: print(j, end='\t') print() if __name__ == "__main__": num = int(input('please input num: ')) Spiralmatrix(num)
不论你在什么时候开始,重要的是开始之后就不要停止。
不论你在什么时候结束,重要的是结束之后就不要悔恨。