1477 神奇的幻方

2021-10-08 04:48:28 字數 890 閱讀 8251

描述

【問題描述】

幻方是一種很神奇的 nn 矩陣:它由數字 1,2,3, … … , nn 構成,且每行、每列及兩條對角線上的數字之和都相同。

當n為奇數時,我們可以通過以下方法構建乙個幻方:

首先將 1 寫在第一行的中間。

之後,按如下方式從小到大依次填寫每個數k(k= 2,3, … , n*n ):

若 (k−1) 在第一行但不在最後一列,則將k填在最後一行,(k− 1) 所在列的右一列;

若 (k− 1) 在最後一列但不在第一行,則將k填在第一列,(k− 1) 所在行的上一行;

若 (k− 1) 在第一行最後一列,則將k填在 (k− 1) 的正下方;

若 (k− 1) 既不在第一行,也不在最後一列,如果 (k− 1) 的右上方還未填數, 則將k填在(k− 1)的右上方,否則將k填在 (k− 1) 的正下方

現給定n,請按上述方法構造 n*n 的幻方

輸入樣例:

3輸出樣例:

8 1 6

3 5 7

4 9 2

這道題要對著題目給出的4個方法的步驟去寫,就可以構成幻方了

#include

#include

intmain()

else

if(x!=

0&&y==n-1)

else

if(x==

0&&y==n-1)

else

if(a[x-1]

[y+1]==

0)else

a[x]

[y]=k;

}for

(i=0

;i)printf

("\n");

}return0;

}

問題1477 神奇的幻方

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

openjudge 神奇的幻方

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

神奇的幻方 模擬

幻方是乙個很神奇的 n n 矩陣,它的每行 每列與對角線,加起來的數字和都是相同的。我們可以通過以下方法構建乙個幻方。階數為奇數 第乙個數字寫在第一行的中間 如果該數字在第一行,則下乙個數字寫在最後一行,列數為該數字的右一列 如果該數字在最後一列,則下乙個數字寫在第一列,行數為該數字的上一行 如果該...