登录
首页精彩阅读Python实现打印螺旋矩阵功能的方法
Python实现打印螺旋矩阵功能的方法
2018-04-26
收藏
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
二、思路
常规法是不断的对数据边界进行判断会很复杂,不妨考虑通过递归的解决每一层的数字。
三、代码    
#coding:utf-8
n=int(raw_input('>'))
#初始化数组
arr=[[0]*nforiinrange(n)]
#递归解决
defdfs(arr, x, y, start, n):
  ifn<=0:return0
  ifn==1:
    arr[x][y]=start
    return0
  #up
  foriinrange(n):
    arr[x][y+i]=start
    start+=1
  #right
  foriinrange(n-1):
    arr[x+1+i][y+n-1]=start
    start+=1
  #down
  foriinrange(n-1):
    arr[x+n-1][y+n-2-i]=start
    start+=1
  #left
  foriinrange(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
fortmpinarr:
  printformat%tuple(tmp)
运行结果:

数据分析咨询请扫描二维码

最新资讯
更多
客服在线
立即咨询