例:
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(); } } } } }