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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bboyXiaoNuo 中级黑马   /  2015-4-29 21:44  /  764 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

1  2  3
8  9  4
7  6  5

2 个回复

倒序浏览
  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. }
复制代码
回复 使用道具 举报
能不能只用循环打印,别用数组
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马