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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© joerk 中级黑马   /  2015-7-6 22:41  /  1456 人查看  /  20 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2.         1   2   3   4  5
  3.         16 17 18 19 6
  4.         15 24 25 20 7
  5.         14 23 22 21 8
  6.         13 12 11 10 9
  7. */
  8. class JuZhen{
  9.                 public static void main(String [] args)
  10.           {
  11.                   int n =5;
  12.                         int [][] data = new int [n][n];
  13.                         int num = 1;
  14.                         int size = data.length;
  15.                         int begin = 0;
  16.                         new JuZhen().print(data , num , begin , size);
  17.                        
  18.                         for(int i = 0; i < n  ; i++)
  19.                         {
  20.                            for( int j = 0 ; j< n ;j++)
  21.                            {
  22.                                       System.out.print(data[i][j] + "\t");
  23.                                   }
  24.                                   System.out.println();
  25.                   }
  26.                        
  27.           }       
  28.           
  29.           void print(int [][] data , int num ,int begin ,int size)
  30.           {
  31.                    int col , row;
  32.              if(size==0)//偶数阶矩阵递归入口;
  33.              {
  34.                return;       
  35.              }
  36.              if(size==1)//奇数阶矩阵递归入口;
  37.              {
  38.                 data[begin][begin] = num;
  39.                 return;       
  40.              }
  41.              
  42.              col = begin ; row = begin;
  43.              
  44.              for(int k = 0 ; k < size-1 ; k++ )
  45.              {
  46.                          data[row][col]=num;
  47.                          col++;
  48.                          num++;
  49.              }
  50.              
  51.              for(int k = 0 ; k < size-1 ; k++ )
  52.              {
  53.                          data[row][col]=num;
  54.                          row++;
  55.                          num++;
  56.              }
  57.              
  58.              for(int k = 0 ; k < size-1 ; k++ )
  59.              {
  60.                          data[row][col]=num;
  61.                          col--;
  62.                          num++;
  63.              }
  64.              
  65.              for(int k = 0 ; k < size-1 ; k++ )
  66.              {
  67.                          data[row][col]=num;
  68.                          row--;
  69.                          num++;
  70.              }
  71.           
  72.             print(data , num , begin+1 , size - 2);//每调用一次,起始位置每减一圈加1,数组维度会减2;
  73.           }
  74.        
  75. }
复制代码

20 个回复

倒序浏览
牛啊,大神!
回复 使用道具 举报

呵呵,没有啦,过讲了
回复 使用道具 举报
看得头晕啊
回复 使用道具 举报
给楼主提示以后加注释
回复 使用道具 举报
学习一下:P
回复 使用道具 举报
CLTDEZHUCE 发表于 2015-7-8 22:07
给楼主提示以后加注释

额。。好吧。。不过个人觉得已经够清晰啦{:3_60:}
回复 使用道具 举报

互相学习!!!{:3_64:}
回复 使用道具 举报
学得不错哦
回复 使用道具 举报

一般般啦{:3_57:}
回复 使用道具 举报
有意思,有空我也试试
回复 使用道具 举报
完全不用分奇偶数!一步搞定!
回复 使用道具 举报
还可以用递归,我怎么就没想到呢。。。
回复 使用道具 举报
CKB 来自手机 中级黑马 2015-7-9 08:49:34
14#
{:3_62:}表示没注释看不懂啊~
回复 使用道具 举报
来学习下
回复 使用道具 举报
lixunwen 发表于 2015-7-9 08:18
完全不用分奇偶数!一步搞定!

求指教?{:3_46:}
回复 使用道具 举报
不错不错
回复 使用道具 举报
CKB 发表于 2015-7-9 08:49
表示没注释看不懂啊~

好吧,以后我注释详细些。。。。
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
腻害腻害!!!!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马