import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[][] nums = new int[n][n];
int count = 0; //矩阵数字
int i = 0, j = 0;//i代表行,j代表列
for (int k = 0; k < n - 1; k++) { //循环次数n-1次
int b = j;
for (i = 0; j < b + 2; j++) { //一次循环内的横向走向
if (j < n)
nums[i][j] = ++count;
}
for (i = 1, j = j - 2; j >= 0; i++, j--) { //右上到左下走向
if (i >= 0 && j >= 0 && j < n && i < n)
nums[i][j] = ++count;
}
for (j = 0; i > 0; i--, j++) { //左下到右上走向
if (i >= 0 && j >= 0 && j < n && i < n)
nums[i][j] = ++count;
}
}
for (int k = 0; k < n; k++) {
for (int l = 0; l < n; l++) {
System.out.print(nums[k][l] + " ");
}
System.out.println();
}
}
} import java.util.*;
public class Main{
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int n=in.nextInt();
int[][] a=new int[n][n];
int z=0,i=0,j=0;
while(z<n*n){
for(j=0;i>=0;i--,j++)
if(i<n && j<n)
a[i][j]=++z;
for(i=0;j>=0;i++,j--)
if(i<n && j<n)
a[i][j]=++z;
}
for(int[] k:a) {
for (int p : k)
System.out.print(p + " ");
System.out.println();
}
比较简单