#include #include #include int **magic1(int n) //奇數階魔方陣
int row = 0;
int col = n/2;
for(int i = 0;ireturn arr;
}int **magic2(int n) //單偶數階魔方陣(能被2整除,不能被4整除)(思路:可以分為4個奇數階矩陣)
int row = 0;
int col = n/4;
for(int i = 0;i<(n*n)/4;i++) //左上n/2階矩陣賦值
row = n/2;
for(int i = 0;irow = 0;
for(int i = 0;irow = n/2;
for(int i = 0;iint t;
for(int i = 0;it = 0;
for(int i = 0;ireturn arr;
}int **magic3(int n) //雙偶數階,能同時被2和4整除(思路:把n階矩陣分為(n/4)*(n/4)個小4階矩陣,每個小矩陣對角線位置做出變換即可)
int t = 0;
for(int i = 0;iint row1 = 0;
int col1 = 0;
int row2 = 0;
int col2 = 0;
for(int i = 0;i} }
return arr;
}int main()
printf("\n");
} free(arr);
return 0;
}
魔方陣 奇數階 單偶數階 雙偶數階
include include include int magic1 int n 奇數階魔方陣 int row 0 int col n 2 for int i 0 i return arr int magic2 int n 單偶數階魔方陣 能被2整除,不能被4整除 思路 可以分為4個奇數階矩陣 in...
奇數階魔方陣(洛書)
題目 將1 n的數子排列在n n的方陣上,要求數子不能重複,方陣各行 各列 及兩條對角線的數子之和相等。此位魔方陣,又稱洛書 洛書是九行九列 若n為奇數,則為奇數階魔方陣。解題方法 洛書的排列規律如下 將1放在第一行中間一列 從2開始直到n n止各數依次按下列規則存放 每乙個數存放的行比前乙個數的行...
奇數階魔方
時間限制 1000 ms 記憶體限制 65535 kb 難度 3 描述 乙個 n 階方陣的元素是1,2,n 2,它的每行,每列和2條對角線上元素的和相等,這樣 的方陣叫魔方。n為奇數時我們有1種構造方法,叫做 右上方 例如下面給出n 3,5,7時 的魔方.38 1 6 3 5 7 4 9 2 517...