奇数阶幻方求解 您所在的位置:网站首页 九宫八卦阵的解法 奇数阶幻方求解

奇数阶幻方求解

#奇数阶幻方求解| 来源: 网络整理| 查看: 265

 

 

奇数阶构造:

一居上行正中央:数字 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 实验室设备网 版权所有