輸出奇數N階魔方陣 幻方陣

2021-08-22 11:55:21 字數 554 閱讀 2263

從鍵盤輸入乙個奇數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.若按上述規則確定的位置有數字或上乙個...