從鍵盤輸入乙個奇數n,輸出n階「魔方陣」。
所謂魔方陣是指這樣的方陣,它的每一行、每一列和對角線之和均相等。例如3階魔方陣為:
8 1 6
3 5 7
4 9 2
魔方陣的奇數排列規律是:
(1) 將1放在第一行中間一列;
(2) 從2開始直到n×n止各數依次按下列規則存放:
按 45°方向向右上走,每乙個數存放的行比前乙個數的行數減1,列數加1;
(3) 如果行列範圍超出矩陣範圍,則迴繞。
例如1在第1行,則2應放在最後一行,列數同樣加1;
又如某個數在第n列,則下乙個數應放在第一列,行數同樣減1;
void rubikcube(int n)
}i=0; //確定1的下標
j=n/2;
for (k=1; k<=n*n; k++)
else
}for (i=0; iprintf("\n");
}printf("\n");
}
輸出奇階魔方陣
對奇階魔方陣,可用dole rob演算法生成,其過程為 從1開始,以此插入各自然數,直到n2 為止。選擇插入位置原則為 將1放在第一行中間一列。從2開始直到 n n止各數依次按下列規則存放 每乙個數存放的行比前乙個數的行數減 1,列數加1。如果上乙個數的行數為 1,則下乙個數的行數為 n,列數加 1...
N階魔方陣
寫出程式填寫出n n 魔方陣 的數值。所謂魔方陣是指這樣的方陣,資料是正整數,從1開始,每個遞增1,每個資料不重複出現,它的每一行 每一列和對角線之和均相等 n是奇數 input 3 5 output 8 1 6 3 5 7 4 9 2 17 24 01 08 15 23 05 07 14 16 0...
n階魔方陣
魔方陣 計算規律 1.將1放在第一行中間一列 2.從2開始到nn按如下規律 每乙個數存放的行數比上乙個數的行數減1 每乙個數存放的列數比上乙個數的列數加1 3.當乙個數的行數為1,他的下乙個數行數為n 4.當乙個數的列數為n,他的下乙個數的列數為1,行數減1 5.若按上述規則確定的位置有數字或上乙個...