關於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...