当前位置: 代码迷 >> J2SE >> 问个简单的输出有关问题
  详细解决方案

问个简单的输出有关问题

热度:133   发布时间:2016-04-24 02:11:54.0
问个简单的输出问题
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();        }    }}
  相关解决方案