感谢感谢。
对于奇数阶幻方,用“左上斜行法”。
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; } }
相关分类