读书人

问个简单的输出有关问题

发布时间: 2012-02-27 10:00:22 作者: rapoo

问个简单的输出问题
int i=5;
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

int i=6
1 2 3 4 5 6
20 21 22 23 24 7
19 32 33 34 25 8
18 31 36 35 26 9
17 30 29 28 27 10
16 15 14 13 12 11
(请问怎么用java输出这样图形...想了一个小时没什么思路大牛们解惑下...)

[解决办法]
内螺旋矩阵算法分析
http://shuishou119800.iteye.com/blog/549592
[解决办法]

Java code
public class Matrix {    static void evaluateMatrix(int[][] matrix, int n){        int i = 0, j, tline, trow;        int line = 0, row = 0;                tline = n;        trow = n;        i = 0;        // 赋值        while (i < n * n - 1) {            for (j = 0; j < trow - 1; ++j)                matrix[line][row++] = i++;            for (j = 0; j < tline - 1; ++j)                matrix[line++][row] = i++;            for (j = 0; j < trow - 1; ++j)                matrix[line][row--] = i++;            for (j = 0; j < tline - 1; ++j)                matrix[line--][row] = i++;            ++line;            ++row;            tline -= 2;            trow -= 2;        }        if(n % 2 == 1)            matrix[line][row] = i;    }    public static void main(String[] args) {                int n = 5;        int[][] matrix = new int[n][n];        evaluateMatrix(matrix, n);        // 输出        for (int i = 0; i < n; ++i) {            for (int j = 0; j < n; ++j) {                System.out.print(matrix[i][j] + "  ");            }            System.out.println();        }    }} 

读书人网 >J2SE开发

热点推荐