魔方陣的演算法原理:
魔方陣(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就向下,否則就往右 左...