Python實(shí)現(xiàn)打印螺旋矩陣功能的方法
本文實(shí)例講述了Python實(shí)現(xiàn)打印螺旋矩陣功能的方法。分享給大家供大家參考,具體如下:
一、問題描述
輸入N, 打印 N*N 螺旋矩陣
比如 N = 3,打?。?
1 2 3
8 9 4
7 6 5
N = 4,打?。?
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
二、思路
常規(guī)法是不斷的對(duì)數(shù)據(jù)邊界進(jìn)行判斷會(huì)很復(fù)雜,不妨考慮通過遞歸的解決每一層的數(shù)字。
三、代碼
#coding:utf-8 n = 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) #格式化輸出print l = len(str(n*n))+1 format = ('%'+str(l)+'d')*n for tmp in arr: print format%tuple(tmp)
運(yùn)行結(jié)果:
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
在Python 不同級(jí)目錄之間模塊的調(diào)用方法
今天小編就為大家分享一篇在Python 不同級(jí)目錄之間模塊的調(diào)用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01Python3.4 splinter(模擬填寫表單)使用方法
今天小編就為大家分享一篇Python3.4 splinter(模擬填寫表單)使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-10-10Python的代理類實(shí)現(xiàn),控制訪問和修改屬性的權(quán)限你都了解嗎
這篇文章主要為大家詳細(xì)介紹了Python的代理類實(shí)現(xiàn),控制訪問和修改屬性的權(quán)限,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03Python自然語言處理 NLTK 庫(kù)用法入門教程【經(jīng)典】
這篇文章主要介紹了Python自然語言處理 NLTK 庫(kù)用法,結(jié)合實(shí)例形式詳細(xì)分析了NLTK庫(kù)的功能、安裝、引用以及使用NLTK庫(kù)進(jìn)行文本分析的各種常用操作技巧,需要的朋友可以參考下2018-06-06