写个程序,打印出以下数据:
1 2 6 7 15 16 28 29 45
3 5 8 14 17 27 30 44 46
4 9 13 18 26 31 43 47 60
10 12 19 25 32 42 48 59 61
11 20 24 33 41 49 58 62 71
21 23 34 40 50 57 63 70 72
22 35 39 51 56 64 69 73 78
36 38 52 55 65 68 74 77 79
37 53 54 66 67 75 76 80 81
[code="java"]
public static void main(String[] args) {
int[][] a = new int[9][9];
int idx = 0;
for(int i = 0; i < 10; i++) {
if(i % 2 == 1) {
for(int x = 0, y = i -1; x < i && y >= 0; x++, y--) {
a[x][y] = ++idx;
}
} else {
for(int x = i -1, y = 0; x >= 0 && y < i; x--, y++) {
a[x][y] = ++idx;
}
}
}
for(int i = 1; i < 9; i++) {
if(i % 2 == 1) {
for(int x = 9 - 1, y = i; x >= i && y < 9; x--, y++ ) {
a[x][y] = ++idx;
}
} else {
for(int x = i, y = 9 -1; x < 9 && y >= i; x++, y--) {
a[x][y] = ++idx;
}
}
}
for(int y = 0; y < 9; y++) {
for(int x = 0; x < 9; x++) {
System.out.print(a[x][y] + "\t");
}
System.out.println();
}
}
[/code]