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实现的归并排序算法。分享给大家供大家参考,具体如下:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分
pycharm远程调试openstack的图文教程
今天我要讲如何远程调试openstack。首先我们使用的工具是Pycharm.1.首先介绍一下环境我的openstack是使用rdo一键安装的,安装在一台centos的虚拟机上,虚拟
Pycharm远程调试openstack的方法
Pycharm对openstack进行远程调试,供大家参考,具体内容如下总共分三步:一.安装samba(非必须的)二.安装并配置pycharm三.修改openstack的代码(以nova为例)
标签:算法,递归,给大家,本文,矩阵