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


Posted in Python onNovember 21, 2017

本文实例讲述了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备份目录及目录下的全部内容的实现方法
Jun 12 Python
python基础之入门必看操作
Jul 26 Python
Python 内置函数memoryview(obj)的具体用法
Nov 23 Python
python批量获取html内body内容的实例
Jan 02 Python
深入了解Python在HDA中的应用
Sep 05 Python
Python函数的默认参数设计示例详解
Dec 01 Python
python实现用类读取文件数据并计算矩形面积
Jan 18 Python
pycharm工具连接mysql数据库失败问题
Apr 01 Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 Python
Python接口自动化测试框架运行原理及流程
Nov 30 Python
Python  Asyncio模块实现的生产消费者模型的方法
Mar 01 Python
python中Matplotlib绘制直线的实例代码
Jul 04 Python
Python中矩阵库Numpy基本操作详解
Nov 21 #Python
python GUI实例学习
Nov 21 #Python
Python实现判断一个字符串是否包含子串的方法总结
Nov 21 #Python
django中的setting最佳配置小结
Nov 21 #Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
Nov 21 #Python
详解supervisor使用教程
Nov 21 #Python
django模型层(model)进行建表、查询与删除的基础教程
Nov 21 #Python
You might like
php socket方式提交的post详解
2008/07/19 PHP
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
全面解析PHP验证码的实现原理 附php验证码小案例
2016/08/17 PHP
PHP入门教程之自定义函数用法详解(创建,调用,变量,参数,返回值等)
2016/09/11 PHP
javascript document.compatMode兼容性
2010/02/23 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
JavaScript将页面表格导出为Excel的具体实现
2013/12/27 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
javascript断点调试心得分享
2016/04/23 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
Javascript格式化并高亮xml字符串的方法及注意事项
2018/08/13 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
Bootstrap 按钮样式与使用代码详解
2018/12/09 Javascript
详解Vue.directive 自定义指令
2019/03/27 Javascript
Vue使用localStorage存储数据的方法
2019/05/27 Javascript
vue 实现锚点功能操作
2020/08/10 Javascript
python实现排序算法
2014/02/14 Python
python访问类中docstring注释的实现方法
2015/05/04 Python
python中引用与复制用法实例分析
2015/06/04 Python
python实现Floyd算法
2018/01/03 Python
详解tensorflow实现迁移学习实例
2018/02/10 Python
pandas数据分组和聚合操作方法
2018/04/11 Python
python字符串Intern机制详解
2019/07/01 Python
Python中Subprocess的不同函数解析
2019/12/10 Python
CSS3中引入多种自定义字体font-face
2020/06/12 HTML / CSS
HTML5进度条特效
2014/12/18 HTML / CSS
汽车检测与维修专业求职信
2013/10/30 职场文书
思想品德课教学反思
2014/02/10 职场文书
企业法人代表任命书
2014/06/06 职场文书
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记
Nginx 常用配置
2022/05/15 Servers