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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 1017161726 中级黑马   /  2015-4-26 17:22  /  383 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 1017161726 于 2015-4-26 17:24 编辑

//打印任意长宽的螺旋矩阵。一下午才写出来。这是一部分代码。有问题随时提。
  1. class Luo
  2. {
  3.         public static void main(String [] args)
  4.         {
  5.                 int m=6,n=8;                                                        //m<=n。m代表第几行,n控制每行。
  6.                 int [] [] arr=null;
  7.                 if (m>n)
  8.                         arr=new int [n] [m];
  9.                 else
  10.                         arr=new int [m] [n];
  11.                 printArr(arr,m,n);
  12.         }
  13.         public static void printArr(int [] [] arr,int a,int b)        //传值时,保证了a<=b。
  14.         {
  15.                 int k=1;
  16.                 for (int x=0;x<a/2;x++)
  17.                 {
  18.                         for (int y=x;y<b-x;y++)
  19.                         {
  20.                                 arr[x][y]=k++;
  21.                         }

  22.                         for (int y=x+1;y<a-x-1;y++)
  23.                         {
  24.                                 arr[y][b-x-1]=k++;
  25.                         }

  26.                         for (int y=b-x-1;y>=x;y--)
  27.                         {
  28.                                 arr[a-x-1][y]=k++;
  29.                         }

  30.                         for (int y=x+1;y<a-x-1;y++)
  31.                         {
  32.                                 arr[a-y-1][x]=k++;
  33.                         }
  34.                 }

  35.                 if (a%2==1)
  36.                 {
  37.                         for (int x=0;x<=b-a;x++)
  38.                         {
  39.                                 arr[a/2][a/2+x]=k++;
  40.                         }
  41.                 }

  42.                 for (int x=0;x<arr.length;x++)
  43.                 {
  44.                         for (int y=0;y<arr[x].length;y++)
  45.                         {
  46.                                 System.out.print(arr[x][y]+"        ");
  47.                         }
  48.                         System.out.println();
  49.                 }
  50.         }
  51. }
复制代码



1 个回复

倒序浏览
学习了·····
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马