程序打印题,如下:

写个程序,打印出以下数据:
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]