本帖最后由 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();
- }
- }
- }
复制代码
|
|