魔方陣問題的求解

2021-09-11 20:01:46 字數 1081 閱讀 4025

一、定義

魔方陣,古代又稱「縱橫圖」,是指組成元素為自然數1、2、…、n2的平方的n×n的方陣,其中每個元素值都不相等,且每行、每列以及主、副對角線上各n個元素之和都相等。

二、相關規則及其解法

1、規則一:將1放在第一行中間一列

2、規則二:從2開始直到n×n止各數依次按下列規則存放;每乙個數存放的行比前乙個數的行數減1,列數加1(例如上面的三階魔方陣,5在4的上一行後一列)

方法一:

方法二:使用三目運算子計算

方法三:將陣列的行和列連線起來形成乙個環

5.規則五:如果按上面規則確定的位置上已有數,或上乙個數是第一行第n列時,則把下乙個數放在上乙個數的下面。例如按上面的規定,4應該放在第1行第2列,但該位置已經被佔據,所以4就放在3的下面

整個**如下:

void magicsquare()

;int currow=0;

int curcol=size/2;

assert(size%2 != 0);//奇數

arr[currow][curcol]=1;

for(int i=2;i<=size*size;i++)

arr[currow][curcol]=i;

}for(int i=0;i

printf("\n");}}

int main()

魔方陣1 奇階魔方陣

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

生成魔方陣

魔方陣即奇數階矩陣的各行各列每個對角線數字之和相等。仔細觀察可以發現數字排列規則,以下 中會做注釋 include include void main int i 0,j,n,num 1,sum int k,m printf 輸入矩陣階數 scanf d n sum n n j n 2 a i j ...

奇數魔方陣

魔方陣,古代又稱 縱橫圖 是指組成元素為自然數1 2 n的平方的n n的方陣,其中每個元素值都不相等,且每行 每列以及主 副對角線上各n個元素之和都相等。階數大於等於3。如3 3的魔方陣 8 1 6 3 5 7 4 9 2 奇數魔方陣的排列規律如下 1 將1放在第一行中間一列 2 從2開始直到n n...