#纯暴力,,,,偶数和奇数的矩阵略微不同,单独判别就行了
n=int(input())
hang=[]
for i in range(n):
hang.append([int(i) for i in input().split()])
p=n*n #需要输出的个数
h=l=0 #初始行和列为0
fangxiang="左" #定义方向 左:行加一,列减一 右:行减一,列加一
while p>0:
p-=1
print(hang[h][l],end=" ") #输出当前位置的数
if h==0 and l%2==0:#列加一
if l==n-1:#判别斜角处
h+=1
else:
l+=1
fangxiang="左"
continue
elif h==0 and l%2==1:#行加一,列减一
h+=1
l-=1
continue
elif l==0 and h%2==1:#行加一
if h==n-1:#判别斜角处
l+=1
else:
h+=1
fangxiang="右"
continue
elif l==0 and h%2==0:
l+=1
h-=1
elif l!=0 and l!=n-1 and h!=0 and h!=n-1:
if fangxiang=="左":
h+=1
l-=1
elif fangxiang=="右":
h-=1
l+=1
continue
elif h==n-1 and l%2==1:
if n%2==1: #如果是奇数矩阵
l+=1
else:
h-=1
l+=1
continue
elif l==n-1 and h%2==1:
if n%2==1: #如果是奇数矩阵
l-=1
h+=1
fangxiang="左"
continue
elif l==n-1 and h%2==0:
if n%2==1: #如果是奇数矩阵
h+=1
else:
h+=1
l-=1
continue
elif h==n-1 and l%2==0:
if n%2==1: #如果是奇数矩阵
h-=1
l+=1
fangxiang="右"
continue
ccf-Z字形扫描-python
最新推荐文章于 2023-01-12 21:20:19 发布