黑马程序员技术交流社区

标题: 陀螺矩阵怎么搞? [打印本页]

作者: bboyXiaoNuo    时间: 2015-4-29 21:44
标题: 陀螺矩阵怎么搞?
1  2  3
8  9  4
7  6  5
作者: 哔哩哔哩    时间: 2015-4-29 22:10
  1. package day04;

  2. /**
  3. *         输出 n=5 的螺旋方阵
  4. *        1  2  3  4  5
  5. *        16 17 18 19 6
  6. *        15 24 25 20 7
  7. *        14 23 22 21 8
  8. *        13 12 11 10 9
  9. * @author bilibili
  10. *
  11. */
  12. class SpiralMatrix {
  13.         /**
  14.          *
  15.          * @param order 输入螺旋方阵的阶数(层数)
  16.          */
  17.         public void print(int order) {
  18.                 int start = 0, end = order - 1, count = 1, i;
  19.                 int[][] arr = new int[order][order];
  20.                 /* 将螺旋方阵一层一层赋值到二维数组 */
  21.                 while (start <= end) {
  22.                         for (i = start; i <= end; i++) {
  23.                                 arr[start][i] = count++;
  24.                         }
  25.                         for (i = start + 1; i <= end; i++) {
  26.                                 arr[i][end] = count++;
  27.                         }
  28.                         for (i = end - 1; i >= start; i--) {
  29.                                 arr[end][i] = count++;
  30.                         }
  31.                         for (i = end - 1; i > start; i--) {
  32.                                 arr[i][start] = count++;
  33.                         }
  34.                         start++;
  35.                         end--;
  36.                 }
  37.                 /* 打印螺旋方阵 */
  38.                 for (i = 0; i < order; i++) {
  39.                         for (int j = 0; j < order; j++) {
  40.                                 System.out.print(arr[i][j] + "\t");
  41.                         }
  42.                         System.out.println();
  43.                 }
  44.         }

  45. }
复制代码

作者: lockwood    时间: 2015-5-1 09:16
能不能只用循环打印,别用数组




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