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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

小勇,66666
回复 使用道具 举报
厉害,好久没看到这么厉害的大牛了
回复 使用道具 举报
        //输出 n=5 的螺旋方阵,下面是获取方法
        public static void getScrew(int n) {
                int[][] arr = new int[n][n];//创建二维数组
                int temp = 0;//数组中元素的初始值
                //计算螺旋数组转的圈数x
                int x;
                if (n%2==0) {
                        x = n/2;
                } else {
                        x = n/2+1;
                }
                //思路创建二维数组arr[a][b]
                for (int y = 0; y < x; y++) {//以圈数为循环
                        //上循环,从左到右;数组arr[y][a]----y不变,a++
                        for (int a = y; a < n-y ; a++) {
                                temp++;
                                arr[y][a] = temp;
                        }
                        //右循环,从上到下;数组arr[b][n-y-1]----b++;n-y-1不变
                        for (int b = y+1; b < n-y-1; b++) {
                                temp++;
                                arr[b][n-y-1] = temp;
                        }
                        //下循环,从右到左;数组arr[n-y-1][c]----n-y-1不变;c--
                        for (int c = n-y-1; c > y; c--) {
                                temp++;
                                arr[n-y-1][c] = temp;
                        }
                        //左循环,从下到上;数组arr[d][y]----d--;y不变
                        for (int d = n-y-1; d > y; d--) {
                                temp++;
                                arr[d][y] = temp;
                        }
                }
                //对数组进行输出
                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();
                }
        }
回复 使用道具 举报
这个代码有点难
回复 使用道具 举报
大神 求带飞啊
回复 使用道具 举报
pengcheng0328 发表于 2015-4-29 23:18
//输出 n=5 的螺旋方阵,下面是获取方法
        public static void getScrew(int n) {
                int[][] arr = n ...

这些代码在我第二个帖子有写出来了,自己想的任意行任意列的螺旋矩阵,但是有个BUG不知道怎么改过来,任意行列的代码其实挺好理解的
回复 使用道具 举报
一诺珍惜 发表于 2015-4-29 23:15
厉害,好久没看到这么厉害的大牛了

不是大牛,只是一个在学习成长中的宅男,努力成为个技术宅
回复 使用道具 举报

前提是我会飞啊,一起加油吧
回复 使用道具 举报
牛奋 来自手机 中级黑马 2015-4-30 00:03:03
29#
路过看看
回复 使用道具 举报
非常给力
回复 使用道具 举报
看晕了,不懂
回复 使用道具 举报
本帖最后由 Chans_宇 于 2015-4-30 11:29 编辑

关于螺旋方阵的有想过,分步遍历赋值想法很好,可以实现任意规律链式排序方阵,不考虑内存资源占用的话,这确实是很好的方法,用分步去实现由繁琐到简单的操作,但明确需求时直接用逻辑语句写的方法运行效率是最高的(反正我这么理解),我也发过类似的贴子,你可以参考下,但只是实现正方阵(行列相等)的情况,反正俺是不打算继续深入去探究了,后面的学习任务很重:'(。
友情链接:http://bbs.itheima.com/thread-191648-1-1.html

点评

参考相互学习下  发表于 2015-4-30 12:21
回复 使用道具 举报
顶++++++++++++++++111
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马