public class Test {
    public Test(int len) {
        int[][] arr = new int[len][len];
        int index = 1;        for(int k=0;k<=len/2;k++) {
            for(int i=k;i<len-k;i++) {
                arr[k][i] = index++;
            }
            for(int i=k+1;i<len - k;i++) {
                arr[i][len - 1 - k] = index++;
            }
            for(int i=len -2-k;i>=k;i--) {
                arr[len - 1 - k][i] = index++;
            }
            for(int i=len -2-k;i>=1+k;i--) {
                arr[i][k] = index++;
            }
        }        int maxLen = ("" + len*len).length();
        for(int i=0;i<arr.length;i++) {
            for(int j=0;j<arr[i].length;j++) {
                String str = "" + arr[j][i];
                for(int k=str.length();k<maxLen;k++) {
                    str += " ";
                }
                str += " ";
                System.out.print(str);
            }
            System.out.println();
        }
    }    public static void main(String[] args) {
        //边长为10
        new Test(10);
    }
}