/* * 解题思路: 先找规律, 然后根据规律向二维数组赋值 */ import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNextInt()) { int num = sc.nextInt(); int[][] array = new int[num][num]; // 规律(值递增的方向): // 00 // 10 01 // 20 11 02 // 30 21 12 03 int val = 1; for (int i = 0; i < num; i++) { for (int m = i, n = 0; m >= 0; m--, n++) { array[m][n] = val; val++; } } for (int i = 0; i < num; i++) { for (int j = 0; j < num; j++) { if (array[i][j] == 0) { break; } if (j != 0) { System.out.print(" "); } System.out.print(array[i][j]); } System.out.println(); } } } }