奇數階魔方 HDU 1998

2021-08-15 21:07:55 字數 1161 閱讀 7683

乙個 n 階方陣的元素是1,2,...,n^2,它的每行,每列和2條對角線上元素的和相等,這樣 

的方陣叫魔方。n為奇數時我們有1種構造方法,叫做「右上方」 ,例如下面給出n=3,5,7時 

的魔方. 

3 8 1 6 

3 5 7 

4 9 2 

5 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 

7 30 39 48 1 10 19 28 

38 47 7 9 18 27 29 

46 6 8 17 26 35 37 

5 14 16 25 34 36 45 

13 15 24 33 42 44 4 

21 23 32 41 43 3 12 

22 31 40 49 2 11 20 

第1行中間的數總是1,最後1行中間的數是n^2,他的右邊是2,從這三個魔方,你可看出「右 

上方」是何意。 

input包含多組資料,首先輸入t,表示有t組資料.每組資料1行給出n(3<=n<=19)是奇數。 

output對於每組資料,輸出n階魔方,每個數占4格,右對齊 

sample input

2

35

sample output
8   1   6

3 5 7

4 9 2

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

題解:分析可知,第一行中間的數是1,然後其右上方為2,以此類推;

當該數能整除n時,其右上方已經有數了,故下乙個數字於其正下方,且如果行超出方格,回到第n行;

列超出方格,回到第1列;用j,k表示行列,即

if(i%n==0) j=(j+1)%n;

else

**(c語言)

#include

#include

#include

int main()

}for(i=0;i}return 0;

}

hdu 1998 奇數階魔方

hdu 1998 奇數階魔方 題意 給出奇數n,用右上法構造乙個n階魔方 思路 由題目給出的示例中可以知道,右上法構造方法如下 從第一行的中間數開始為1,然後這個位置的上一行右邊為這個數 1,如果新位置已被使用,則新位置改為舊位置的正下方 author licatweijie include inc...

HDU 1998 奇數階魔方

problem description 乙個 n 階方陣的元素是1,2,n 2,它的每行,每列和2條對角線上元素的和相等,這樣 的方陣叫魔方。n為奇數時我們有1種構造方法,叫做 右上方 例如下面給出n 3,5,7時 的魔方.3 8 1 6 3 5 7 4 9 2 5 17 24 1 8 15 23 ...

hdu 1998 奇數階魔方(找規律 模擬)

應該不算太水吧。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 對於上面的資料,根據題目中的提示,很容易就看到對角線上的數字是11 12 13 14 15。其他的資料,比如說2,從2往右上查就是2 3 4 5 1。描...