问题描述
回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
输入格式
输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
输出格式
输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。
样例输入
3 3
1 2 3
4 5 6
7 8 9
样例输出
1 4 7 8 9 6 3 2 5
'''回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,
则左转90度。一开始位于矩阵左上角,方向向下。'''
l=input()
l=l.split()
l=list(map(int,l))
nm=[]
for i in range(l[0]):
n=input()
n=n.split()
n=list(map(int,n))
nm.append(n)
tag=True
n1=0
n2=0
n3=0
n4=0
while tag:
if n4==l[0]-n2:
break
for i in range(n4,l[0]-n2):
print(nm[i][n1],end=' ')
n1+=1
if n1==l[1]-n3:
break
for j in range(n1,l[1]-n3):
print(nm[l[0]-n1][j],end=' ')
n2+=1
if l[0]-1-n2==-1+n4:
break
for i in range(l[0]-1-n2,-1+n4,-1):
print(nm[i][l[1]-n2],end=' ')
n3+=1
if l[1]-1-n3==n3-1:
break
for j in range(l[1]-1-n3,n3-1,-1):
print(nm[n3-1][j],end=' ')
n4+=1