A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© cxl1694095035 中级黑马   /  2016-5-17 12:21  /  414 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.Arrays;

                /*
                 * 8、写一方法,打印等长的二维数组,要求从1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。 如: n = 4 则打印:
                 * 1        2        3        4
                 * 12        13        14        5
                 * 11        16        15        6
                 * 10        9        8        7
                 */
public class Test8 {

        public static void main(String[] args) {
                printMath(60);  
    }  
      
    public static void printMath(int n)  
    {  
        int[][] arr = new int[n][n];  
        int x = 0;  
        int y = 0;  
        int max = arr.length-1;  
        int min = 0;  
        int num = 1;  
         
        while (min<=max)  
        {  
            //right  
            while (y<max)  
            {  
                arr[x][y++] = num++;  
            }  
            //down  
            while (x<max)  
            {  
                arr[x++][y] = num++;  
            }  
            //left  
            while (y>min)  
            {  
                arr[x][y--] = num++;  
            }  
            //up  
            while (x>min)  
            {  
                arr[x--][y] = num++;  
            }  
            //如果是奇数,可能赋值不上  
            if (min == max)  
            {  
                arr[x][y] = num;  
            }  
              
            max--;  
            min++;  
              
            x++;  
            y++;  
        }  
         
        for (int i=0;i<arr.length;i++)  
        {  
            for (int j=0;j<arr.length;j++)  
            {  
                System.out.print(arr[i][j]+"\t");  
            }  
            System.out.println();  
        }  
    }  
}  

3 个回复

倒序浏览
请问你这个是入学测试的题目吗? 感觉好熟悉呀,还有序号呢,同学。
回复 使用道具 举报
sincere126 发表于 2016-5-17 12:57
请问你这个是入学测试的题目吗? 感觉好熟悉呀,还有序号呢,同学。

是的呀,,你如果做了入学测试就应该知道的
回复 使用道具 举报
做过入学测试的都知道
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马