这是幻方算法,分奇数阶和偶数阶算法。你到算法区去搜,很多的。

解决方案 »

  1.   

    ......楼主的程序......一眼望去真是不得了
      

  2.   

    '楼主的程序......一眼望去真是不得了'多谢夸奖,这是从某论坛上见到的,我没调试过,因为。。我晕倒了。'下面是我曾写过的奇数阶幻方,但问题是如何列出所有可能排列?穷举法似乎不易。Sub huanfang(ByVal n As Integer) '一维数组
    Me.Caption = n & " 阶幻方"
    ForeColor = vbRed
    Dim num() As Integer
    ReDim num(n ^ 2 - 1) As Integer
    If n Mod 2 = 0 Then Exit Sub
    For i = 0 To n ^ 2 - 1
    If i < n Then
    num(i) = IIf(i >= (n - 1) / 2, 0, n * (n + 1)) + (i - (n - 1) / 2) * (n + 2) + 1
    Else
    num(i) = 1 + (n ^ 2 + num(i - n) + IIf(num(i - n) Mod n = 0, 0, n)) Mod n ^ 2
    End If
    Print Tab((i Mod n) * 6); Space(4 - Len(Str(num(i)))) & num(i);
    If (i + 1) Mod n = 0 Then Print
    Next
    End Sub
    Private Sub Form_Click()
    huanfang 19
    End Sub