螺旋矩阵
package com.ham; public class Luoxuanjz { public static void main(String[] args) { luoxuan(5); } public static void luoxuan(int n) { int[][] arr = new int[n][n]; int a = 1; int b = n%2==0 ? n/2 : n/2+1; //循环次数 for(int i=0; i<b; i++) { // ---> 从左到右 for(int j=i; j<n-i; j++) { arr[i][j] = a++; } // | 从上到下 // \|/ for(int j=i+1; j<n-i; j++) { arr[j][n-i-1] = a++; } // <--- 从右到左 for(int j=n-i-2; j>=i; j--) { arr[n-i-1][j] = a++; } // /|\ 从下到上 // | for(int j=n-i-2; j>i; j--) { arr[j][i] = a++; } } //打印 for(int k=0; k<n; k++) { for(int m=0; m<n; m++) System.out.print(getWhole(arr[k][m]) + " "); System.out.println(); } } //保证数字个数一致 public static String getWhole(int a) { String result = String.valueOf(a); if(result.length() == 1) return "0" + result; if(result.length() > 2) return "**"; return result; } }