黑马程序员技术交流社区

标题: 关于一道循环的题(绝对有挑战性) [打印本页]

作者: 卢乾荣    时间: 2015-3-19 22:30
标题: 关于一道循环的题(绝对有挑战性)
今天学习,出了一道关于循环的题,看了半天用了二维数组的方式做,不太懂,现在我把题给大家看一下,能不能看完后给我写一些原理的东西,最好是代码中有解释的,纯代码不要。输出 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
这个就是题,解答方式不限,能用一维数组做出来的大牛,兄弟在此跪拜。


作者: rhui    时间: 2015-3-19 23:04
class LuoXuanFangZhen
{
        public static void main(String[] args)
        {
                int SIZE=5;
                int [][] arr = new int [SIZE][SIZE];
                int i,j,k=0,n,m;
                n=SIZE;
                m=(n+1)/2;
                for (i=0;i<n ;i++ )
                {
                        // 顶边,从左到右,行不变列变
                        for (j=i;j<=n-i-1 ;j++ )
                        {
                                arr[i][j]=++k;
                        }
                        // 右边,从上到下,行变列不变
                        for (j = i + 1; j <= n - i - 1; j++)
                                arr[j][n - i - 1] = ++k; // 输出5、6、7、15
                       
                        // 底边,从右到左,行不变列变
                        for (j = n - i - 2; j >= i; j--)
                                arr[n - i - 1][j] = ++k; // 输出8、9、10、16
                       
                        // 左边,从下到上,行变列不变
                        for (j = n - i - 2; j >= i + 1; j--)
                                arr[j][i] = ++k;
                }




                for (i = 0; i < n; i++)
                {
                        for (j = 0; j < n; j++)
                                System.out.print(arr[i][j] + "\t");
                        System.out.println("");
                }

        }
}

作者: 卢乾荣    时间: 2015-3-20 23:35
哥们能不能写详细点有些看不懂




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2