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)