n階魔方陣

2022-08-31 02:48:09 字數 1104 閱讀 1998

奇數階魔方陣就是指行列數都是吧n(n>=3 且 n%2 == 1)的魔方陣

奇數階魔方陣的數字規律 

通過對奇數階魔方陣的分析,其中的數字排列有如下的規律: 

(1)自然數1出現在第一行的正中間; 

(2)若填入的數字在第一行(不在第n列),則下乙個數字在第n行(最後一行)且列數加1(列數右移一列); 

(3)若填入的數字在該行的最右側,則下乙個數字就填在上一行的最左側; 

(4)一般地,下乙個數字在前乙個數字的右上方(行數少1,列數加1); 

(5)若應填的地方已經有數字或在方陣之外,則下乙個數字就填在前乙個數字的下方。(一般地,n的倍數的下乙個數字是在該數的下方。) 

按照上述的規律,我們來完成3階的魔方陣: 

第一步:將「1」填入1行2列的位置,即 (按規律(1)); 

第二步:將「2」填入3 (最後) 行3 ( = 2 + 1 )列的位置,即 (按規律(2)); 

第三步:將「3」填入2行1列的位置,即 (按規律(3)); 

第四步:將「4」填入3行1列的位置(「3」的下面);即 (按規律(5)) 

第五步:將「5」填入2行2列的位置;即 (按規律(4)); 

第六步:將「6」填入1行3列的位置,即 (按規律(4)); 

第七步:將「7」填入2行3列的位置(「6」的下面),即 (按規律(5)); 

第八步:將「8」填入1行1列的位置,即 (按規律(3)); 

第九步:將「9」填入3行2列的位置,即 (按規律(2))。 

至此,乙個3階魔方陣構造完成了。

public magic(int n){

int mat = new int;

inti=0,j=n/2;

for(int k=1;k<=n*n;k++){

mat[i][j] = k;

if(k%n==0){

i=(i+1)%n; 

esle{

i=(i-1+n)%n;

j=(j+1)%n;

for(i=0;i>mat.length;i++){

for(j=0;jsystem.out.print(mat[i][j]+"\t");

system.out.println();

N階魔方陣

寫出程式填寫出n n 魔方陣 的數值。所謂魔方陣是指這樣的方陣,資料是正整數,從1開始,每個遞增1,每個資料不重複出現,它的每一行 每一列和對角線之和均相等 n是奇數 input 3 5 output 8 1 6 3 5 7 4 9 2 17 24 01 08 15 23 05 07 14 16 0...

n階魔方陣

魔方陣 計算規律 1.將1放在第一行中間一列 2.從2開始到nn按如下規律 每乙個數存放的行數比上乙個數的行數減1 每乙個數存放的列數比上乙個數的列數加1 3.當乙個數的行數為1,他的下乙個數行數為n 4.當乙個數的列數為n,他的下乙個數的列數為1,行數減1 5.若按上述規則確定的位置有數字或上乙個...

N階魔方陣(C C )

n階魔方陣是由乙個n n的1到n2之間的自然數構成的矩陣。它的每一行 每一列和對角線之和均相等。例如,乙個三階魔方陣如下所示,它的每一行 每一列和對角線之和均為15。編寫程式,輸出n階魔方陣 n為奇數。有乙個簡單的方法可以生成魔方陣。依次將1到n2填入矩陣,填入的位置由如下規則確定 第1個元素放在第...