猿问

C++数据结构幻方

感谢感谢。

对于奇数阶幻方,用“左上斜行法”。

int x=0,y=n/2;

 for(int i=1;i<=n*n;i++)

 {

  m[x][y]=i;

  x--;

  y--;

  if(x<0&&y<0)

  {

   x=x+2;  //请问为什么是+2呢?(当+1的时候就无法实现)

   y=y+1;

  }

  else if(x<0) 

  {

   x=x+n;

  }

  else if(y<0)

  {

   y=y+n;

  }

  else if(m[x][y]!=0)

  {

   x=x+2;

   y=y+1;

  }

 }
禾则
浏览 1358回答 2
2回答
随时随地看视频慕课网APP
我要回答