您的位置:首页 > 服装鞋帽 > 男装 > 【转】 2010 联想研究院上机题

【转】 2010 联想研究院上机题

luyued 发布于 2011-06-05 20:29   浏览 N 次  

  /**有一个N*N的矩阵,作为输入,要求编写函数实现按一种特殊的顺序来打印这个矩阵里面的所有元素的值,特殊的顺序如下图,

  * 例子中的是一个4*4的矩阵,输出的结果是1,2,3....16, 也就是一种"折"形遍历线路

  * 1 - 2 - 6 -7

  * 3 - 5 - 8 -13

  * 4 - 9- 12 -14

  * 10- 11-15 -16

  publicclassTestQ{

  voidm_print(int[][]data,int N)

  {

  N =3;

  // di :表示对角线diagonal,对于N的矩阵,有2N-1条对角线

  for(intdi=0; di<2*N-1; di++)

  {

  if(di%2==0) //

  {

  intsum=0;

  for(intj=0;j

  for(inti=0;i

  {

  if(i+j==di)

  {

  System.out.println(data[i][j]);

  sum++;

  if(sum==di+1) //已经将所有符合条件的i,j找到,第di条对角线有di+1个元素符合条件。

  break;

  }

  else

  ;

  }

  }

  else//将ij的位置对调,即可实现反向输出

  {

  intsum=0;

  for(inti=0;i

  for(intj=0;j

  {

  if(i+j==di)

  {

  System.out.println(data[i][j]);

  sum++;

  if(sum==di+1) //已经将所有符合条件的i,j找到,第di条对角线有di+1个元素符合条件。

  break;

  }

  }

  }

  }

  }

  publicstaticvoidmain(Stringargs[])

  {

  TestQt=newTestQ();

  inta[][]={{0,1,2},{3,4,5},{6,7,8}};

  int N =3;

  t.m_print(a, N);

  }

  }

广告赞助商