輸出"魔方陣"。所謂魔方陣是指這樣的方陣,它的每一行、每一列和對角線之和均相等。例如,三階魔方陣為
8 1 6
3 5 7
4 9 2
要求輸出1~n*n的自然數構成的魔方陣。
解:魔方陣中各數的排列規律如下:
(1)將1放在第1行的中間一列。
(2)從2開始直到n×n止各數依次按下列規則存放:每乙個數存放的行比前乙個數的行數減1,
列數加1(例如上面的三階魔方陣,5在4的上一行後一列).
列數同樣加1.
則3應放在第2行第1列。
上乙個數的下面。例如,按上面的規定,4應該放在第1行第2列,但該位置已經被1佔據,
所以4就放在3的下面。7應該放在第3行第1列,但該位置已經被4佔據,故7放在6下面。
按此方法可以得到任何階的魔方陣。
注意:魔方陣的階數應奇數,程式指定其最大值為15。今定義陣列a為16行16列,對第0行0列不用來存放資料,只用第1~15行,使讀者看程式時比較符合習慣。
1 #include2 #include3#define size 50;
4main()
515 row = 1; col = (n+1)/2; value = 1;16
while(value<=n*n)
1728
else
29 row++;
30 value=value+1
; 31
}32 printf("
\n%d 階魔方陣如下所示:\n\n
",n);
33for(row = 1; row <= n; row++)
3439 }
魔方陣的演算法
魔方陣的演算法原理 魔方陣 1 將1放在第一行中間一列 2 從2開始直到n n止各數依次按下列規則存放 按 45 方向向右上走,每乙個數存放的行比前乙個數的行數減1,列數加1 3 如果行列範圍超出矩陣範圍,則迴繞。例如1在第1行,則2應放在最下一行,列數同樣加1 又如某個數在第n列,則下乙個數應放在...
魔方陣1 奇階魔方陣
魔方陣 古代又稱 縱橫圖 是指組成元素為自然數1 2 n2的平方的n n的方陣,其中每個元素值都不相等,且每行 每列以及主 副對角線上各n個元素之和都相等。魔方陣分為奇階魔方陣和偶階魔方陣,偶階魔方陣又分為能被四整除和不能被四整除兩種,今天來給大家講解奇階魔方陣,後續會為大家補充剩餘的魔方陣。奇階魔...
奇數魔方陣(經典演算法)
說明 將1到n 為奇數 的數字排列在nxn的方陣上,且各行 各列與各對角線的和必須相同,如下所示 解法一般程式語言的陣列索引多由0開始,為了計算方便,我們利用索引1到n的部份。第乙個數字放在第一行第一列的正 在計算向右 左 上或向下時,我們可以將索引值除以n值,如果得到餘數為1就向下,否則就往右 左...