/** * 方法1 * * @param x */ public void f1(int x) { int[][] temp = new int[x][x]; int n = 0; int r = 0; int xx = 0; int yy = 0; while (true) { temp[yy--][xx++] = n++; if (yy < 0) { xx = 0; yy = r++; } if (yy >= x) { break; } } /** 打印输出 */ for (int i = 0; i < temp.length; i++) { for (int j = 0; j < temp[0].length; j++) { if (temp[i][j] != 0)// 不为0输出 System.out.print(temp[i][j] + "\t"); } System.out.println(); } }
public void f(int x) { int[][] temp = new int[x][x]; temp[0][0] = 1; int t_x = x; int t_y = x; int r = 0;// 行数初始值 int c = 0; for (int i = 0; i < t_x; i++) { if (i != 0) temp[i][0] = temp[i - 1][0] + (++r); c = i + 2; for (int j = 1; j < t_y; j++) { temp[i][j] = temp[i][j - 1] + (c++);
} t_y--; } /** 打印输出 */ for (int i = 0; i < temp.length; i++) { for (int j = 0; j < temp[0].length; j++) { if (temp[i][j] != 0)// 不为0输出 System.out.print(temp[i][j] + "\t"); } System.out.println(); } } }