5.奇数阶幻方构造法

        memset(MS,0,sizeof(MS));
        int MN=N*N,x=0,y=N/2;
        MS[x][y]=1;
        for(int i=2; i<=MN; i++)
        {
            x--,y++;
            if(x<0) x+=N;
            if(y>=N) y-=N;
            if(y<0) y+=N;
            if(MS[x][y]!=0)
            {
                x+=2,y-=1;
                if(x>=N) x-=N;
                if(y<0) y+=N;
            }
            MS[x][y]=i;
        }

你可能感兴趣的:(奇数阶幻方构造法)