螺旋矩阵
从键盘输入一个整数(1~20)
则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。
例如:
输入数字2,则程序输出:
1 2
4 3
输入数字3,则程序输出:
1 2 3
8 9 4
7 6 5
要求格式:每个数据宽度为4,左对齐。
【样例输入】
4
【样例输出】
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7
代码
n=int(input())
m=[[0]*n for i in range(n)]
l=0 #左边界
r=n-1 #右边界
u=0 #上边界
d=n-1 #下边界
cnt=1
while l<=r and u<=d:
for i in range(l,r+1):
m[u][i]=cnt
cnt+=1
if u==d:
break
u+=1
for i in range(u,d+1):
m[i][r]=cnt
cnt+=1
if l==r:
break
r-=1
for i in range(r,l-1,-1):
m[d][i]=cnt
cnt+=1
d-=1
for i in range(d,u-1,-1):
m[i][l]=cnt
cnt+=1
l+=1
for i in range(n):
for j in range(n):
print('%-4d'%m[i][j],end='')
print()