幻方是乙個很神奇的 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 在第一行但不在最後一列...