神奇的幻方 模擬

2021-09-12 02:43:38 字數 841 閱讀 4753

幻方是乙個很神奇的 n×n 矩陣,它的每行、每列與對角線,加起來的數字和都是相同的。我們可以通過以下方法構建乙個幻方。(階數為奇數)

第乙個數字寫在第一行的中間

如果該數字在第一行,則下乙個數字寫在最後一行,列數為該數字的右一列

如果該數字在最後一列,則下乙個數字寫在第一列,行數為該數字的上一行

如果該數字在右上角,或者該數字的右上方已有數字,則下乙個數字寫在該數字的下方

輸入格式

乙個數字 n(n ≤ 20)。

輸出格式

按上方法構造的 (2n−1)×(2n−1) 的幻方。

輸出時每行末尾的多餘空格,不影響答案正確性

樣例輸入

3
樣例輸出

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

解題思路:

#include#includeusing namespace std;

int n,cnt;

int mp[200][200];

int main()else

if( x == 0 && y == 2 * n - 2)else if(mp[nx][ny])else

x = nx;//4

y = ny;//3

} for(int i = 0;i < (2 * n - 1);i++) else

} cout << endl;

} return 0;

}

神奇的幻方(模擬)

幻方是一種很神奇的n n矩陣 它由數字1,2,3,n n構成,且每行 每列及兩條對角線上的數字之和都相同。當n為奇數時,我們可以通過以下方法構建乙個幻方 首先將1寫在第一行的中間。之後,按如下方式從小到大依次填寫每個數k k 2,3,n n 1.若 k 1 在第一行但不在最後一列,則將k填在最後一行...

openjudge 神奇的幻方

神奇的幻方 檢視 提交 統計 提問 總時間限制 1000ms 記憶體限制 65535kb 描述幻方是乙個很神奇的n n矩陣,它的每行 每列與對角線,加起來的數字和都是相同的。我們可以通過以下方法構建乙個幻方。階數為奇數 1.第乙個數字寫在第一行的中間 2.下乙個數字,都寫在上乙個數字的右上方 a.如...

1477 神奇的幻方

描述 問題描述 幻方是一種很神奇的 nn 矩陣 它由數字 1,2,3,nn 構成,且每行 每列及兩條對角線上的數字之和都相同。當n為奇數時,我們可以通過以下方法構建乙個幻方 首先將 1 寫在第一行的中間。之後,按如下方式從小到大依次填寫每個數k k 2,3,n n 若 k 1 在第一行但不在最後一列...