本文实例讲述了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实现打印螺旋矩阵功能的方法相关推荐

  1. python全盘搜索文件_python实现全盘扫描搜索功能的方法

    由用户指定需要扫描的盘符或目录,输入需要查找的文件或者文件夹名称(不包含中文名称) 代码: # encoding=utf-8 import os.path import stat # 用python编 ...

  2. python花式输出_Python——花式打印对象的若干种方法

    今天是Python专题的第10篇文章,咱们来聊聊Python当中的类.编程 打印实例 咱们先从类和对象当中最简单的打印输出开始讲起,打印一个实例是一个很是不起眼的应用,可是在实际的编程当中却很是重要. ...

  3. python实践输出星星_python中怎么打印星星

    for循环: 1.有大括号与无大括号的区别: 循环体只能有一条语句, 如果需要执行的语句超过一条,就要加大括号将它们变为一条复合语句.//for循环如此,while循环也是如此. for(int i= ...

  4. python怎么输出文本_python输出语句怎么用

    Python中输出语句是print语句 1.逗号分隔符 在Python中print语句可根据sys.stdout中包含的文件生成输出,它接受一个逗号分隔的对象表,如下实例:x = 1 y = 2 z ...

  5. python花式编码_Python——花式打印对象的若干种方法

    今天是Python专题的第10篇文章,我们来聊聊Python当中的类. 打印实例 我们先从类和对象当中最简单的打印输出开始讲起,打印一个实例是一个非常不起眼的应用,但是在实际的编程当中却非常重要.原因 ...

  6. python怎么输出文字_python怎么输出汉字

    看Python简明教程,学习使用print打印字符串,试了下打印中文,不行. 编辑环境:IDLE 上网搜了下解决办法,各种说法,试了两种:print u"学习" print (un ...

  7. python编程输出汉字_python如何输出汉字

    python如何输出汉字 发布时间:2020-09-18 15:14:56 来源:亿速云 阅读:99 作者:小新 小编给大家分享一下python如何输出汉字,相信大部分人都还不怎么了解,因此分享这篇文 ...

  8. python怎么输出字符串_python出输出字符串方式:

    python出输出字符串方式: >>> who='knights' >>> what='NI' >>> print ('we are the',w ...

  9. python怎么输出百分数_Python 如何输出百分比

    Python 输出百分比的两种方式 注: 在python3环境下测试. 方式1:直接使用参数格式化:{:.2%} {:.2%}: 显示小数点后2位 显示小数点后2位: >>> pri ...

  10. python字符画图形_Python 实现打印单词的菱形字符图案

    我就废话不多说了,还是直接看代码吧! a = [1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1] b = [' ' * 2 * (7 - i) + 'Good' * i f ...

最新文章

  1. 保存一下dedecms数据库表和字段说明,方便日后查询
  2. JS DOM 对象
  3. html中input、label、form、textarea、select
  4. 使用tar或dd等完成Linux系统备份恢复
  5. Android-7.0-Nuplayer-启动流程
  6. IOS开发-jqeurey mobile
  7. bp神经网络预测案例python_详细BP神经网络预测算法及实现过程实例
  8. svm对未知数据的分类_SVM多分类之一对一与一对多
  9. 火车进出栈【卡特兰数】【高精度】【压位】【压int位】
  10. win10 桌面右键菜单内容修改
  11. 我被一只老鼠的吱吱声吵醒了
  12. 视频|《8问》浙江大学张宏鑫:边缘计算或许是区块链的福音
  13. 系统服务器可以关机吗,服务器每天关机可以吗
  14. 51单片机:流水灯蜂鸣器控制
  15. 植物叶片——丙二醛MDA
  16. html只选择年份,ant design vue 日期选择器只选择年份
  17. Java笔记——数据库05
  18. 为Jupyter Notebook添加Kernel(Win10+Ubuntu18.04)
  19. 关于THC/THC.h: No such file or directory解决办法
  20. 白鹭时代与html5关系,白鹭时代观点:HTML5行业将进入红利收割期

热门文章

  1. 华为网络模拟器eNSP安装教程
  2. Taskctl的定时任务调度
  3. android动画特效,安卓——之Animation动画特效
  4. 404终结者——IPFS新引擎Filenet
  5. windows kafka安装
  6. python http通信接口开发
  7. DupanTools第三方不限速下载工具
  8. r语言与数据挖掘最佳实践和经典案例数据_R语言与数据挖掘最佳实践和经典案例...
  9. maven安装教程+Eclipse整合
  10. iOS面试开发-这样的简历才是面试官想看的