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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 查无此人。 中级黑马   /  2015-6-4 00:07  /  277 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class ArrayTest {
public static void main(String[] args) {
  int sum = 9;
  int[][] arr = new int[sum][sum];
  int x = 0;
  int y = 0;
  int count = 0;
  int flag = 1;
  int line = arr.length - 1;
  while (y <= line) {
   count++;
   arr[x][y] = count;
   y++;
  }
  y--;
  luoXuan(arr, x, y, count, flag, line);
}
public static void luoXuan(int[][] arr, int x, int y, int count, int flag,int line) {
  int time1 = line;
  int time2 = line;
  while (time1 > 0) {
   time1--;
   count++;
   x += flag;
   arr[x][y] = count;
  }
  while (time2 > 0) {
   time2--;
   count++;
   y -= flag;
   arr[x][y] = count;
  }
  if (count != line * line) {
   line--;
   flag = -flag;
   luoXuan(arr, x, y, count, flag, line);
  } else {
   for (int a = 0; a < arr.length; a++) {
    for (int b = 0; b < arr[a].length; b++)
     System.out.print(arr[a][b] + " \t ");
    System.out.println();
   }
  }
}
}

感觉有点麻烦,不知道这智商能不能混黑马:L

5 个回复

倒序浏览
<code> System.out.println();<</code>
回复 使用道具 举报
这个名词是什么东西?没听过这么个说法!
回复 使用道具 举报
学习了,不过能不能写上注释啊。。
回复 使用道具 举报
  1. <p>class ArrayTest {
  2. public static void main(String[] args) {</p><p>//设置行列数
  3.    int sum = 9;
  4.    int[][] arr = new int[sum][sum];
  5.    int x = 0;
  6.    int y = 0;</p><p>//设定每个数组角标下的值
  7.    int count = 0;
  8.    int flag = 1;
  9.    int line = arr.length - 1;</p><p>//先对数组的arr[0]到arr[0][line]进行赋值。
  10.    while (y <= line) {
  11.     count++;
  12.     arr[x][y] = count;
  13.     y++;
  14.    }
  15.    y--;</p><p>//调用函数对剩下的角标赋值
  16.    luoXuan(arr, x, y, count, flag, line);
  17. }
  18. public static void luoXuan(int[][] arr, int x, int y, int count, int flag,int line) {
  19.    int time1 = line;
  20.    int time2 = line;</p><p>//对列进行赋值
  21.    while (time1 > 0) {
  22.     time1--;</p><p>// 值依次累加
  23.     count++;
  24.     x += flag;
  25.     arr[x][y] = count;
  26.    }</p><p>//对行进行赋值
  27.    while (time2 > 0) {
  28.     time2--;
  29.     count++;
  30.     y -= flag;
  31.     arr[x][y] = count;
  32.    }</p><p>//限定条件为二维数组中最后一个赋值的值</p><p>
  33.    if (count != line * line) {</p><p>//如果为到最后,将行数减一   通过flag取反实现角标的递减
  34.     line--;
  35.     flag = -flag;</p><p>//递归循环
  36.     luoXuan(arr, x, y, count, flag, line);
  37.    } else {</p><p>//如果赋值结束后对数组输出
  38.     for (int a = 0; a < arr.length; a++) {
  39.      for (int b = 0; b < arr[a].length; b++)
  40.       System.out.print(arr[a][b] + " \t ");
  41.      System.out.println();
  42.     }
  43.    }
  44. }
  45. }
  46. </p>
复制代码


评分

参与人数 1黑马币 +4 收起 理由
TOBESKY + 4

查看全部评分

回复 使用道具 举报
我早就在找这个代码了!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马