golang顺时针打印矩阵的方法示例
题目描述
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4X4矩阵:12345678910111213141516则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.
packagemain import"fmt" funcmain(){ //s:=[][]int{{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}} //s:=[][]int{{1},{2},{3},{4}} //s:=[][]int{{1,2,3,4},{5,6,7,8}} s:=[][]int{{1,2},{5,6},{9,10},{13,14}} printMatrix(s) } funcprintMatrix(s[][]int){ ifs==nil{ fmt.Println("切片为空,无法打印") } bex,bey:=0,0 hang:=len(s)-1 lie:=len(s[0])-1 ifhang==0{ for_,v:=ranges[0]{ fmt.Println(v) } return } iflie==0{ for_,v:=ranges{ fmt.Println(v[0]) } return } forbex<=hang&&bey<=lie{ ax,ay:=bex,bey foraybey{ fmt.Println(s[ax][ay]) ay-- } forax>bex{ fmt.Println(s[ax][ay]) ax-- } bex++ bey++ hang-- lie-- } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。