前言:
今天看官们对“回形算法”大约比较关怀,各位老铁们都想要学习一些“回形算法”的相关知识。那么小编也在网络上收集了一些对于“回形算法””的相关文章,希望姐妹们能喜欢,姐妹们快快来学习一下吧!题目描述
回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。
输入
输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。
输出
输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。
样例输入
3 31 2 34 5 67 8 9
样例输出
1 4 7 8 9 6 3 2 5
代码的最后多了一个空格没有办法解决,可能自己也有其他的问题,因为我运用了十余个例子都是多出一个空格。(希望有大佬看见可以给些建议[可怜])
代码如下
n,m=map(int,input().split())t=[]for i in range(n): t.append(list(map(int,input().split())))l=min(n,m)*0.5p=0o=1u=-1r=0for i in range(round(l)): try: for j in range(p,n): print(t[j][p],end=" ") p+=1 n-=1 except:break try: for j in range(o,m): print(t[n][j],end=" ") m-=1 o+=1 except:break try: for j in range(n-1,u,-1): print(t[j][m],end=" ") u+=1 except:break try: for j in range(m-1,r,-1): print(t[r][j],end=" ") r+=1 except:break
c语言网运行的结果如下
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。