回形取数python蓝桥杯基础练习vip

问题描述

  回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转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

    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值