回型数
根据规律一行或者一列的赋值;
看成坐标
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("输入几排");
int n=scanner.nextInt();
int a[][]=new int[n][n];
int minX=0;
int manX=n-1;
int minY=0;
int manY=n-1;
int count=0;
while(minX<=manX)
{
for(int x=minX;x<=manX;x++)
{
a[minY][x]=++count; //进行函数赋值(从上到下)
}
minY++; //从上到下的赋值一行 y轴应该加一
for(int y=minY;y<=manY;y++) //进行列数赋值(上一步结尾的列)
{
a[y][manX]=++count;
}
manX--;
for(int x=manX;x>=minX;x--) //j
{
a[manY][x]=++count;
}
manY--;
for(int y=manY;y>=minY;y--)
{
a[y][minX]=++count;
}
minX++;
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
System.out.print(a[i][j]+" ");//输出值
}
System.out.println(); //换行
}
}