幻方是一種很神奇的 n∗n 矩陣:它由數字 1,2,3,⋯⋯,n×n 構成,且每行、每列及兩條對角線上的數字之和都相同。
當 n 為奇數時,我們可以通過下方法構建乙個幻方:
首先將 1 寫在第一行的中間。
之後,按如下方式從小到大依次填寫每個數 k(k=2,3,⋯,n×n) :
1.若 (k−1) 在第一行但不在最後一列,則將 k 填在最後一行, (k−1) 所在列的右一列;
2.若 (k−1) 在最後一列但不在第一行,則將 k 填在第一列, (k−1) 所在行的上一行;
3.若 (k−1) 在第一行最後一列,則將 k 填在 (k−1) 的正下方;
4.若 (k−1) 既不在第一行,也最後一列,如果 (k−1) 的右上方還未填數,則將 k 填在 (k−1) 的右上方,否則將 l 填在 (k−1) 的正下方。
現給定 n ,請按上述方法構造 n∗n 的幻方。
輸入檔案只有一行,包含乙個正整數 n ,即幻方的大小。
輸出檔案包含 n 行 ,每行 n 個整數,即按上述方法構造出的 n∗n 的幻方,相鄰兩個整數之間用單空格隔開。
input
3output
8 1 6對於全部資料, 1≤n3 5 7
4 9 2
≤39'>1≤n≤39
且 n'>n
為奇數。
時間限制:1
s'>1s
空間限制:128
mb'>128mb
題解:直接按照題目給的填數方式模擬即可。
ac**:
1 #include2 #include3int n,mp[43][43];4
struct
pointnow,nex;
7int
cnt;
8int
main()923
24 now.x=nex.x, now.y=nex.y;
25 cnt++;26}
27for(int i=1;i<=n;i++)
2834 printf("\n"
);35
}36 }
openjudge 神奇的幻方
神奇的幻方 檢視 提交 統計 提問 總時間限制 1000ms 記憶體限制 65535kb 描述幻方是乙個很神奇的n n矩陣,它的每行 每列與對角線,加起來的數字和都是相同的。我們可以通過以下方法構建乙個幻方。階數為奇數 1.第乙個數字寫在第一行的中間 2.下乙個數字,都寫在上乙個數字的右上方 a.如...
神奇的幻方 模擬
幻方是乙個很神奇的 n n 矩陣,它的每行 每列與對角線,加起來的數字和都是相同的。我們可以通過以下方法構建乙個幻方。階數為奇數 第乙個數字寫在第一行的中間 如果該數字在第一行,則下乙個數字寫在最後一行,列數為該數字的右一列 如果該數字在最後一列,則下乙個數字寫在第一列,行數為該數字的上一行 如果該...
1477 神奇的幻方
描述 問題描述 幻方是一種很神奇的 nn 矩陣 它由數字 1,2,3,nn 構成,且每行 每列及兩條對角線上的數字之和都相同。當n為奇數時,我們可以通過以下方法構建乙個幻方 首先將 1 寫在第一行的中間。之後,按如下方式從小到大依次填寫每個數k k 2,3,n n 若 k 1 在第一行但不在最後一列...