java打印螺旋矩阵

public void testPrint(){
        int n=5;

        int len=0,i=0,j=0,d=0,f=0,rn=n;
        int[][] array=new int[n][n];
        while(len<n*n){
            array[i][j]=len+1;
            len++;
            f++;
            if(f>=rn){
                d++;
                f=0;
                rn=d%2==1?rn-1:rn;
            }
            switch (d%4){
                case 0:j++;break;
                case 1:i++;break;
                case 2:j--;break;
                case 3:i--;break;
            }
        }
        for (int k = 0; k <n ; k++) {
            System.out.println(Arrays.toString(array[k]));
        }
    }

打印效果如下:

[1, 2, 3, 4, 5]
[16, 17, 18, 19, 6]
[15, 24, 25, 20, 7]
[14, 23, 22, 21, 8]
[13, 12, 11, 10, 9]

 

posted @ 2018-06-20 10:08  Gyoung  阅读(891)  评论(0)    收藏  举报