首页 > 编程 > Python > 正文

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

2019-11-25 15:38:41
字体:
来源:转载
供稿:网友

本文实例讲述了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-8n = 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)#格式化输出printl = len(str(n*n))+1format = ('%'+str(l)+'d')*nfor tmp in arr:  print format%tuple(tmp)

运行结果:

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表