python输出n×n的方格矩阵_Python实例——打印输出螺旋矩阵(一)N*N型矩阵-Go语言中文社区...

给定数据NUM,输出对应的螺旋矩阵

python输出n×n的方格矩阵_Python实例——打印输出螺旋矩阵(一)N*N型矩阵-Go语言中文社区..._第1张图片

如:

如:NUM=3 NUM=4

01 08 07 01 12 11 10

02 08 06 02 13 16 09

03 04 05 03 14 15 08

04 05 06 07

以上图为例可以发现逆时针螺旋矩阵规则如下:

(1)号转弯线除行列索引之和为NUM-1

(2)号转弯线的行列索引值相等

(3)号转弯线的行索引等于列索引减1

逆时针螺旋矩阵Python实现代码:

NUM=int(input("请输入螺旋矩阵的NUM:"))

#构建NUM*NUM的二维列表

array=[[0]*NUM]

for i in range(NUM-1):

array+=[[0]*NUM]

#螺旋方向控制,0 向下,1 向右,2 向上,3 先向左

orient=0

j,k=0,0#j控制行号,k控制列好

for i in range(1,NUM*NUM+1):

array[j][k]=i

#1号转角

if j+k==NUM-1:

if j>k:#左下角

orient=1

else:#右上角

orient=3

elif (k==j)and(k>=NUM/2):#右下角

orient=2

elif (j==k-1)and(k<=NUM/2):#左上角

orient=0

if orient==0:

j+=1

elif orient==1:

k+=1

elif orient==2:

j-=1

elif orient==3:

k-=1

for i in range(NUM):

for j in range(NUM):

print('%02d '%array[i][j],end="")

print("")

输出效果:

请输入螺旋矩阵的NUM:4

01 12 11 10

02 13 16 09

03 14 15 08

04 05 06 07

顺时针螺旋矩阵Python实现代码:

NUM=int(input("请输入NUM:"))

array=[[0]*NUM]

for i in range(NUM-1):

array+=[[0]*NUM]

#控制方向:0 向右,1向下,2向左,3向上

#顺时针螺旋矩阵默认应为1

orient=0

j,k=0,0#j控制行号,k控制列号

for i in range(1,NUM*NUM+1):

array[j][k]=i

if j+k==NUM-1:

if j>k:#位于左下角

orient=3

else: #位于左上角

orient=1

elif (j==k) and (j>=NUM/2):#右下角

orient=2

elif (j-1==k) and (j<=NUM/2):#右上角

orient=0

if orient==0:

k+=1

elif orient==1:

j+=1

elif orient==2:

k-=1

elif orient==3:

j-=1

for i in range(NUM):

for j in range(NUM):

print('%02d '%array[i][j],end="")

print("")

输出效果:

请输入NUM:5

01 02 03 04 05

16 17 18 19 06

15 24 25 20 07

14 23 22 21 08

13 12 11 10 09

你可能感兴趣的:(python输出n×n的方格矩阵_Python实例——打印输出螺旋矩阵(一)N*N型矩阵-Go语言中文社区...)