幻方就是一个N*N的矩阵中填入1至N^2,使得每行、每列,以及两条对角线上的数之和都相等当N为奇数时,可用以下的方法来填数
(1)将1填入第一行的中间;
(2)将数字下一個数填在右上方。
(i)出现越界若越过第一行,则折返回最后一行若越过最后一列,则折返回第一列
(ii)没越界,但右上方已有数了此时将其填在上一个数的正下方。
(3)对于矩阵的最右上方的格子(第一行最后一列)要特殊处理因为下一个数同时越过第一行和最後一列,折返时的格子也已经有数了因此特殊处理,将其填在第二行的最后一列即可