C 版本 22 神奇的幻方

2021-10-10 17:04:51 字數 1046 閱讀 2816

幻方是乙個很神奇的n*n矩陣,它的每行、每列與對角線,加起來的數字和都是相同的。

我們可以通過以下方法構建乙個幻方。(階數為奇數)

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

2.下乙個數字,都寫在上乙個數字的右上方:

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

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

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

乙個數字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

using namespace std;

intmain()

; cin >> n;

j = n -1;

size =(2

* n -1)

*(2* n -1)

; arr[i]

[j]= k;

//先將第乙個數字放在中間

k++;while

(size >1)

else

if(i !=

0&& j ==

2* n -2)

else

if(i ==

0&& j ==

2* n -

2|| arr[i -1]

[j +1]

!=0)else

size--;}

for(

int x =

0; x <

2* n -

1; x++)

cout << endl;

}return0;

}

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 在第一行但不在最後一列...