给定数字n,输出1到n方的数字,输出格式如下
如果n=3 输出
123
894
765
如果n=4输出
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7看起来就是盘着输出一样

解决方案 »

  1.   

    public class PrintNumberSquare { public static void main(String[] args) {
    int n = 4;
    int[][] square = new int[n][n];
    int i=0,j=0;
    int current = 1;
    int left_right = 1;
    int up_down = 0;
    while (current<=n*n){
    square[i][j] = current;
    current++;
    if (j + left_right == n || 
    j + left_right == -1 ||
    i + up_down == n ||
    square[i + up_down][j + left_right]!=0){
    //转向
    if (up_down!=0) {
    left_right = -up_down;
    up_down = 0;
    }else{
    up_down = left_right;
    left_right = 0;
    }
    }
    i += up_down;
    j += left_right;
    }
    for (i=0; i<n; i++){
    for (j=0; j<n; j++){
    System.out.print(" " + square[i][j]);
    }
    System.out.println();
    }
    }
      

  2.   

    螺旋矩阵,已经被提问出好多次了。实现的方法很多。参考:http://topic.csdn.net/u/20100719/02/83930e70-adcb-469d-8dc9-020d5ea8f477.html