Python實現打印螺旋矩陣功能的方法
本文實例講述了Python實現打印螺旋矩陣功能的方法。分享給大家供大家參考,具體如下:
一、問題描述
輸入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ī)法是不斷的對數據邊界進行判斷會很復雜,不妨考慮通過遞歸的解決每一層的數字。
三、代碼
#coding:utf-8
n = int(raw_input('>'))
#初始化數組
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)
運行結果:


更多關于Python相關內容感興趣的讀者可查看本站專題:《Python數據結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
python使用selenium模擬瀏覽器進入好友QQ空間留言功能
這篇文章主要介紹了python使用selenium模擬瀏覽器進入好友QQ空間留言,在本文實現過程中需要注意的是留言框和發(fā)表按鈕在不同的frame,發(fā)表在外面的一層,具體實現過程跟隨小編一起看看吧2022-04-04
使用Python分析數據并進行搜索引擎優(yōu)化的操作步驟
在互聯網時代,網站數據是一種寶貴的資源,可以用來分析用戶行為、市場趨勢、競爭對手策略等,本文將介紹如何使用Python爬取網站數據,并進行搜索引擎優(yōu)化,,需要的朋友可以參考下2023-08-08

