奇数阶幻方求解 | 您所在的位置:网站首页 › 九宫八卦阵的解法 › 奇数阶幻方求解 |
奇数阶构造: 一居上行正中央:数字 1 放在首行最中间的格子中; 依次斜填切莫忘:向右上角斜行,依次填入数字; 上出框时向下放:如果右上方向出了上边界,就以出框后的虚拟方格位置为基准,将数字竖直降落至底行对应的格子中; 右出框时向左放:同上,向右出了边界,就以出框后的虚拟方格位置为基准,将数字平移至最左列对应的格子中; 排重便在下格填:如果数字 n右上的格子已被其它数字占领,就将 n+1 填写在 n下面的格子中; 右上排重一个样:如果朝右上角出界,和上面重复的情况做同样处理。
//100阶以内的奇数阶幻方求解 #include int i,j,n,x,y; int a[101][101]; int main() { scanf("%d",&n); for(i=0;i if(x==1&&y==n) x=2; //右上方格子要特殊处理 else { x--;y++; //将数字i填在右上方 if(xn) y=1; //越界判断 if(a[x][y]>0) {x+=2;y--;} //填在上一个数的正下方 } a[x][y]=i; } for(i=1;i |
CopyRight 2018-2019 实验室设备网 版权所有 |