用二维数组打印螺旋方阵

    xiaoxiao2022-07-13  172

    例:

    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

    受https://blog.csdn.net/zz1017161726/article/details/45288823启发,代码如下:

    编译后加参数运行 java SpiralArray 5

    import java.util.ArrayList; import java.util.List; class SpiralArray {     public static void main(String[] args) {         if(args.length == 0){             System.out.println("请输入参数");             return;         }         int num;                  try{             num = Integer.parseInt(args[0]);         }catch(NumberFormatException e){             System.out.println("请输入数字");             return;         }         if(num < 2 || num > 50){             System.out.println("请输入2-50的整数");             return;         }         soutSpiralArray(num);     }     private static void soutSpiralArray(int num){         boolean xlock = true;         boolean ylock = true;         int x = 0;         int y = 0;         int n = 1;         int m = 1;         int[][] arr = new int[num][num];         while(n <= num*num){                          arr[x][y] = n;             if(y < num - m && ylock){                 y ++;             }else if(x < num - m && xlock){                 x ++;             }else if(y >= m){                 y --;                 xlock = false;                 ylock = false;             }else if(x >= 0){                 x --;                 if(x == m){                     xlock = true;                     ylock = true;                     m ++;                 }             }             n ++;         }         for(int i = 0; i < num; i++){             for(int j = 0; j < num; j++){                 System.out.print(arr[i][j]+",");                 if(j == num -1){                     System.out.println();                 }             }         }     } }

     

    最新回复(0)