| 
 
| 本帖最后由 1017161726 于 2015-4-26 17:24 编辑 
 //打印任意长宽的螺旋矩阵。一下午才写出来。这是一部分代码。有问题随时提。
 
 复制代码class Luo
{
        public static void main(String [] args)
        {
                int m=6,n=8;                                                        //m<=n。m代表第几行,n控制每行。
                int [] [] arr=null;
                if (m>n)
                        arr=new int [n] [m];
                else
                        arr=new int [m] [n];
                printArr(arr,m,n);
        }
        public static void printArr(int [] [] arr,int a,int b)        //传值时,保证了a<=b。
        {
                int k=1;
                for (int x=0;x<a/2;x++)
                {
                        for (int y=x;y<b-x;y++)
                        {
                                arr[x][y]=k++;
                        }
                        for (int y=x+1;y<a-x-1;y++)
                        {
                                arr[y][b-x-1]=k++;
                        }
                        for (int y=b-x-1;y>=x;y--)
                        {
                                arr[a-x-1][y]=k++;
                        }
                        for (int y=x+1;y<a-x-1;y++)
                        {
                                arr[a-y-1][x]=k++;
                        }
                }
                if (a%2==1)
                {
                        for (int x=0;x<=b-a;x++)
                        {
                                arr[a/2][a/2+x]=k++;
                        }
                }
                for (int x=0;x<arr.length;x++)
                {
                        for (int y=0;y<arr[x].length;y++)
                        {
                                System.out.print(arr[x][y]+"        ");
                        }
                        System.out.println();
                }
        }
}
 
 
 | 
 |