本文實例講述了Python實現(xiàn)打印螺旋矩陣功能的方法。分享給大家供大家參考,具體如下:
一、問題描述
輸入N, 打印 N*N 螺旋矩陣
比如 N = 3,打印:
1 2 3
8 9 4
7 6 5
N = 4,打?。?br /> 1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
二、思路
常規(guī)法是不斷的對數(shù)據(jù)邊界進行判斷會很復雜,不妨考慮通過遞歸的解決每一層的數(shù)字。
三、代碼
#coding:utf-8n = int(raw_input('>'))#初始化數(shù)組arr = [[0]*n for i in range(n)]#遞歸解決def dfs(arr, x, y, start, n): if n<=0:return 0 if n==1: arr[x][y] = start return 0 #up for i in range(n): arr[x][y+i] = start start += 1 #right for i in range(n-1): arr[x+1+i][y+n-1] = start start += 1 #down for i in range(n-1): arr[x+n-1][y+n-2-i] = start start += 1 #left for i in range(n-2): arr[x+n-2-i][y] = start start += 1 dfs(arr,x+1,y+1,start,n-2)a = dfs(arr,0,0,1,n)#格式化輸出printl = len(str(n*n))+1format = ('%'+str(l)+'d')*nfor tmp in arr: print format%tuple(tmp)運行結果:


希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答
圖片精選