下载后可任意编辑魔方阵算法及 C 语言实现 1 魔方阵概念魔方阵是指由 1,2,3……n2填充的,每一行、每一列、对角线之和均相等的方阵,阶数 n = 3,4,5…。魔方阵也称为幻方阵。例如三阶魔方阵为:魔方阵有什么的规律呢?魔方阵分为奇幻方和偶幻方。而偶幻方又分为是 4 的倍数(如 4,8,12……)和不是 4 的倍数(如 6,10,14……)两种。下面分别进行介绍。2 奇魔方的算法2.1 奇魔方的规律与算法奇魔方(阶数 n = 2 * m + 1,m =1,2,3……)规律如下:1. 数字 1 位于方阵中的第一行中间一列;2.数字 a(1 < a ≤ n2)所在行数比 a-1 行数少 1,若 a-1 的行数为 1,则 a 的行数为n;3.数字 a(1 < a ≤ n2)所在列数比 a-1 列数大 1,若 a-1 的列数为 n,则 a 的列数为1;4.假如 a-1 是 n 的倍数,则 a(1 < a ≤ n2)的行数比 a-1 行数大 1,列数与 a-1 相同。2.2 奇魔方算法的 C 语言实现 1 #include 2 // Author: http://furzoom.com/ 3 // N 为魔方阶数 4 #define N 11 5 6 int main() 7 { 8 int a[N][N]; 9 int i;10 int col,row;11 12 col = (N-1)/2;13 row = 0;14 15 a[row][col] = 1;16 17 for(i = 2; i <= N*N; i++)18 {19 if((i-1)%N == 0 )20 {21 row++;22 }23 else24 {25 // if row = 0, then row = N-1, or row = row - 126 row--;27 row = (row+N)%N;28 29 // if col = N, then col = 0, or col = col + 130 col ++;31 col %= N;32 }33 a[row][col] = i;34 }35 for(row = 0;row