C語言的N階幻方

2021-10-12 12:57:57 字數 846 閱讀 4667

關於c語言的n階幻方問題

問題描述:所謂 n 階幻方是 1,2,…,n2 的方陣排列,且每行、每列和每條對角線上的和都相等。

問題舉例:

編寫程式列印 5x5 的幻方矩陣:

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

現依據我校老師的題目給大家提供一種解決n階幻方的方法:

把幻方儲存在乙個二維陣列中。起始時把數 1 放在 0 行的中間,剩下的數 2,3,…,25 依次向上移動一行並向右移動一列。當可能越過陣列邊界時需要「繞回」到陣列的另一端。例如:如果需要把下乙個數放到 -1 行,我們就將其儲存到 4 行(最後一行);如果需要把下乙個數放到 5 列,我們就將其儲存到 0 列。如果某個特定的陣列元素已經被占用,那麼就把該數儲存在前乙個數的正下方。

#include

intmain

(void

)int i =

0, j =

(n-1)/

2;for(

int k =

1; k <= n * n; k++

)else

}for

(int i =

0; i < n; i++

)return0;

}

**實現效果:

當輸入10後程式所計算出的10階幻方的結果。

N(奇數)階幻方解法

3階8 1635 7492 5階17241 815235 714164 6132022 1012 1921311 182529 include includeusing namespace std const int n 9 定義階數,當前9階 該演算法只適合奇數階幻方 int main int a...

c 奇階幻方

奇階幻方的產生規則 將1放在第一行中間一列 從2開始直到n n止各數依次按下列規則存放 按 45 方向行走,如向右上 每乙個數存放的行比前乙個數的行數減1,列數加1 如果行列範圍超出矩陣範圍,則迴繞。如果按上面規則確定的位置上已有數,或上乙個數是第1行第n列時,include include usi...

四階幻方 反幻方c

把1 16的數字填入4x4的方格中,使得行 列以及兩個對角線的和都相等,滿足這樣的特徵時稱為 四階幻方。四階幻方可能有很多方案。如果固定左上角為1,請計算一共有多少種方案。比如 1 2 15 16 12 14 3 5 13 7 10 4 8 11 6 9 以及 1 12 13 8 2 14 7 11...