Python实现打印螺旋矩阵功能的方法

 更新时间:2017年11月21日 14:25:44   作者:Prime0906  
这篇文章主要介绍了Python实现打印螺旋矩阵功能的方法,简单描述了螺旋矩阵的概念、原理及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]*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 二维数组及画图的实例详解

    基于python 二维数组及画图的实例详解

    下面小编就为大家分享一篇基于python 二维数组及画图的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • 基于python实现微信好友数据分析(简单)

    基于python实现微信好友数据分析(简单)

    本文主要介绍利用网页端微信获取数据,实现个人微信好友数据的获取,并进行一些简单的数据分析,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-02-02
  • Python标准库使用OrderedDict类的实例讲解

    Python标准库使用OrderedDict类的实例讲解

    今天小编就为大家分享一篇关于Python标准库使用OrderedDict类的实例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • python列表中remove()函数的使用方法详解

    python列表中remove()函数的使用方法详解

    这篇文章主要给大家介绍了关于python列表中remove()函数的使用,以及Python列表的remove方法的注意事项,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2021-12-12
  • CentOS 6.5下安装Python 3.5.2(与Python2并存)

    CentOS 6.5下安装Python 3.5.2(与Python2并存)

    这篇文章主要给大家介绍了在CentOS 6.5下安装Python 3.5.2的方法教程,安装后的python3与Python2并存,文中分享了详细的方法步骤,对大家具有一定的参考学习价值,下面来一起看看吧。
    2017-06-06
  • 浅析Python数字类型和字符串类型的内置方法

    浅析Python数字类型和字符串类型的内置方法

    这篇文章主要介绍了Python数字类型和字符串类型的内置方法,本文通过实例代码讲解的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • python 将列表中的字符串连接成一个长路径的方法

    python 将列表中的字符串连接成一个长路径的方法

    今天小编就为大家分享一篇python 将列表中的字符串连接成一个长路径的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python面向对象版学生信息管理系统

    python面向对象版学生信息管理系统

    这篇文章主要为大家详细介绍了python面向对象版学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06
  • 使用Python的xlrd和xlwt操作Excel详解

    使用Python的xlrd和xlwt操作Excel详解

    这篇文章主要介绍了使用Python的xlrd和xlwt对比操作Excel详解,xlrd和xlwt是python的第三方库,xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入,需要的朋友可以参考下
    2023-08-08
  • python使用reportlab实现图片转换成pdf的方法

    python使用reportlab实现图片转换成pdf的方法

    这篇文章主要介绍了python使用reportlab实现图片转换成pdf的方法,涉及Python使用reportlab模块操作图片转换的相关技巧,需要的朋友可以参考下
    2015-05-05

最新评论