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;
}
}