可以使用类似于打印蛇形数组的方式、
模拟即可
AC Code
import java.util.*;
import static java.lang.System.out;
public class Main{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while(true) {
int n = in.nextInt();
if(n == 0) break;
int[][] arr = new int[n][n];
int cnt = 0;
while(cnt < n) {
int val = 1;
// 列
for(int i = cnt; i < n; i++) {
arr[cnt][i] = val++;
}
val = 2;
// 行
for(int i = (cnt + 1); i < n; i++) {
arr[i][cnt] = val++;
}
cnt++;
}
// 输出
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
out.print(arr[i][j] + " ");
}
out.println();
}
out.println();
}
}
}