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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 亦如梦幻泡影 中级黑马   /  2015-7-29 22:52  /  433 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


/*
* 输出 n=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
*/
public class ForDemo03 {
        public static void main(String[] args) {
                int n = 5;
                int x = n;
                int[][] arr = new int[x][x];
                int k = 0;
                for (int i = 0; i < x; i++) {
                        // 从左到右行不变,列变
                        for (int j = i; j < x - i; j++) {
                                arr[i][j] = ++k;
                        }
                        // 右边从上向下列不变,行变
                        for (int j = i + 1; j < x - i; j++) {
                                arr[j][x - i - 1] = ++k;
                        }
                        // 底部从右向左行不变,列变
                        for (int j = x - i - 2; j >= i; j--) {
                                arr[x - i - 1][j] = ++k;
                        }
                        // 左边从下向上列不变,行变
                        for (int j = x - i - 2; j >= i + 1; j--) {
                                arr[j][i] = ++k;
                        }
                }
                for (int i = 0; i < x; i++) {
                        for (int j = 0; j < x; j++) {
                                System.out.print(arr[i][j] + "\t");
                        }
                        System.out.println();
                }
        }
}

5 个回复

倒序浏览
正在找这个,多谢楼主
回复 使用道具 举报
好,赞。。。。。。
回复 使用道具 举报
学习一下
回复 使用道具 举报
这道题我的伤啊!
当时看作业要求,使用之前学到的知识来做这道题,当时还没教二维数组,虽然早就已经会二维数组,知道二位数组能做出来,就是不用,结果想破脑袋都做不出来,放学的时候导师来了一句,这个要用二位数组。
回复 使用道具 举报
看了好多遍,都没有看懂啊!!!!是不是逻辑思维能力太弱了,是最大的硬伤
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马