魔方陣的演算法

2021-09-11 23:25:25 字數 939 閱讀 1103

魔方陣的演算法原理:

魔方陣(1) 將1放在第一行中間一列;

(2) 從2開始直到n×n止各數依次按下列規則存放:

按 45°方向向右上走,每乙個數存放的行比前乙個數的行數減1,列數加1;

(3) 如果行列範圍超出矩陣範圍,則迴繞。

例如1在第1行,則2應放在最下一行,列數同樣加1;

又如某個數在第n列,則下乙個數應放在第一列,行數同樣減1;

(4) 如果按上面規則確定的位置上已有數,或上乙個數是第1行第n列時,則把下乙個數放在上乙個數的下面。

例如:33的魔方陣

進行分析後:

這是乙個二維陣列,那麼就說明需要用到兩個for迴圈進行列印

緊接著看到了演算法的介紹後,我們應該運用多個if–else語句進行判斷

具體的**如下:

#include

#define n 5

int main()

;a[1][j]=1;//第一行的中間列是1,初始化陣列

for(int k=2;k<=nn;k++)//k是將要出現的值

else

if(a[i][j]==0)//如果經過上面一系列判斷這個地方沒有數,則將k放到這裡

a[i][j]=k;

else//如果此處有個數字,則放到這一列的下一行

}for(int i=1;i<=n;i++)//列印出這個魔方陣

printf("\n");

}printf("\n");

return 0;

}以上**就是我們想要輸出魔方陣時候所有的**

但是這也並不是完全就是魔方陣

因為魔方陣分為奇數魔方陣和偶數魔方陣

以上是就是奇數魔方陣的輸出方式!

魔方陣演算法

輸出 魔方陣 所謂魔方陣是指這樣的方陣,它的每一行 每一列和對角線之和均相等。例如,三階魔方陣為 8 1 6 3 5 7 4 9 2 要求輸出1 n n的自然數構成的魔方陣。解 魔方陣中各數的排列規律如下 1 將1放在第1行的中間一列。2 從2開始直到n n止各數依次按下列規則存放 每乙個數存放的行...

魔方陣1 奇階魔方陣

魔方陣 古代又稱 縱橫圖 是指組成元素為自然數1 2 n2的平方的n n的方陣,其中每個元素值都不相等,且每行 每列以及主 副對角線上各n個元素之和都相等。魔方陣分為奇階魔方陣和偶階魔方陣,偶階魔方陣又分為能被四整除和不能被四整除兩種,今天來給大家講解奇階魔方陣,後續會為大家補充剩餘的魔方陣。奇階魔...

奇數魔方陣(經典演算法)

說明 將1到n 為奇數 的數字排列在nxn的方陣上,且各行 各列與各對角線的和必須相同,如下所示 解法一般程式語言的陣列索引多由0開始,為了計算方便,我們利用索引1到n的部份。第乙個數字放在第一行第一列的正 在計算向右 左 上或向下時,我們可以將索引值除以n值,如果得到餘數為1就向下,否則就往右 左...