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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


第四题:(拔高选做题,如果你把之前所有的知识都掌握了,可以思考一下这道题,本题不要求必须完成)
    输出 n=5 的螺旋方阵
       1  2  3  4  5
    16 17 18 19 6
    15 24 25 20 7
    14 23 22 21 8
    13 12 11 10 9

4 个回复

倒序浏览
有点儿意思
回复 使用道具 举报
这个主要就考考你的思路,我们直接告诉你就没意思了
回复 使用道具 举报
我说一下我的思路:定义二维数组,arr[x][y],代表x行y列的数字,然后观察规律,前几行逐级递增,后几行逐级递减,前几竖逐级递减,后几竖逐级递增。而且越靠近中央,递增或递减的数越少。就相当于把矩阵从对角线分割成四块,每一块的规律都一样了。
回复 使用道具 举报
本帖最后由 大西洋 于 2015-4-26 14:41 编辑

贴出部分代码:
根据C语言的代码改的Java版
  1.         public static void Matrix(int[][] a,int n){
  2.                 int i,j,k = 0,m;
  3.                 if( n % 2 == 0 ){
  4.                         m = n / 2;
  5.                 }else {
  6.                         m = n/2 +1 ;
  7.                 }
  8.                 for(i = 0; i< m; i++){                        
  9.                         for(j = i; j < n-i; j++){    // 产生 上部横行的数字,   01、02、03、04、05
  10.                                 k++;                                   
  11.                                 a[i][j] = k;                          
  12.                         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马