import java.util.Scanner;
public class demo01 {
static int num = 1000;
static int[][] a = new int[num][num];
static int i = 0;
static int j = 0;
static int n = 0;
static int b = 0;//1111111
static int c = 1;//2222222
static int d = 0;//3333333
static int number = 0;
static int n1 = 0;
static int n2 = 0;
static int n3 = 0;
static //获得数组大小
void getdemo()
{
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
num = scanner.nextInt();
}
//初始化数组
static int[][] init(int a[][])
{
getdemo();
for(i=0;i<num;i++)
{
for(j=0;j<num;j++)
{
a[i][j]=0;
}
}
return a;
}
//数组赋值
static int assignment(int a[][])
{
//第一种bbbbb
for(i=0;i<num-b;i++)
{
if(a[i][i+b]==0)
{
a[i][i+b]=++n;
}
if(i==num-b-1)
{
b++;
number++;
}
}
//第二种ccccccc
for(i=num-c,j=num-c;i>=0;i--)
{
if(a[i][j]==0)
{
a[i][j]=++n;
}
if(i==0)
{
c++;
number++;
}
}
//第三种ddddd
for(i=d,j=num-1;j>=d;j--)
{
if(a[i][j]==0)
{
a[i][j]=++n;
}
if(j==d)
{
d++;
number++;
}
}
return number;
}
//打印数组
static void display(int a[][])
{
//初始化数组
init(a);
//赋值数组
while(number<num)
{
assignment(a);
}
for(i=0;i<num;i++)
{
for(j=0;j<num;j++)
{
System.out.print(" "+a[i][j]+" ");
}
System.out.println("");
}
}
public static void main(String[] args) {
display(a);
}
}