给了一个5*5的矩阵,让旋转着打出里面的字符,题忘了,大致就是这个意思。 上答案:
其实就先自己把数组构建好,然后设定一个一个横坐标的最小值,和最大值,纵坐标的最小值,最大值。依次打出,横,纵,衡,纵,然后横坐标递增,纵坐标递减。
最后判断下,打出中心坐标。
class SpiralPrint{ public static void main(String[] args) { char matrix[][]= { {'i','l','o','v','e'}, {'d','i','n','t','e'}, {'n','i','e','e','p'}, {'a','v','w','r','i'}, {'m','a','x','e','c'} }; SpiralPrint(matrix); } public static void SpiralPrint(char[][] m){ int iMin=0,iMax=4,jMin=0,jMax=4; do { for(int j=jMin;j<jMax;j++){ System.out.print(m[iMin][j]); } for(int i=iMin;i<iMax;i++){ System.out.print(m[i][jMax]); } for(int j=jMax;j>jMin;j--){ System.out.print(m[iMax][j]); } for(int i=iMax;i>iMin;i--){ System.out.print(m[i][jMin]); } iMax--; jMax--; iMin++; jMin++; } while(iMin!=iMax||jMin!=jMax); System.out.print(m[iMax][iMax]); } }