總時間限制:
1000ms
記憶體限制:
65535kb
描述
幻方是乙個很神奇的n*n矩陣,它的每行、每列與對角線,加起來的數字和都是相同的。
我們可以通過以下方法構建乙個幻方。(階數為奇數)
1.第乙個數字寫在第一行的中間
2.下乙個數字,都寫在上乙個數字的右上方:
a.如果該數字在第一行,則下乙個數字寫在最後一行,列數為該數字的右一列
b.如果該數字在最後一列,則下乙個數字寫在第一列,行數為該數字的上一行
c.如果該數字在右上角,或者該數字的右上方已有數字,則下乙個數字寫在該數字的下方
輸入乙個數字n(n<=20)
輸出按上方法構造的2n-1 * 2n-1的幻方
樣例輸入
3
樣例輸出
17 24 1 8 1523 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
#include#includeusing namespace std;
int n;
int mp[200][200];
int cnt;
int main()
else if(mp[nx][ny])
else mp[nx][ny]=++cnt;
x=nx;y=ny;
} for(int i=0;i<(2*n-1);i++)
{ for(int j=0;j<(2*n-1);j++)
{ if(j==0)cout<
神奇矩陣 二維陣列的應用
神奇矩陣 2 9 4 7 5 3 6 1 8 令矩陣的每行每列之和都為15 解法 2,4,6,8,這四個數,正好佔據了矩形的四個角,我們採用填充方法將方格填完 填充規律 在第一行中間填1,然後1的右上角即為2的位置 行越界則移動到最後一行,2的右上角 即為3的位置,一直到碰到已填的數字為止 此時數字...
題3 二維陣列的查詢
題目 在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的個二維陣列和乙個整數,判斷陣列中是否含有該整數。例 比如,此時要尋找數字2。從右上角開始尋找,6大於2,6這一列其他數肯定大於6,即可以排除這一列。往前一列5大於2,再往前3大於...
每日一練 二維陣列中的查
內容 在乙個二維陣列中,每一行都按照從左往右遞增的順序排列,每一列都按照從上到下遞增的順序排列。請完成乙個函式,輸入這樣的乙個二維陣列,判斷是否含有該整數。解題思路 首先選取陣列中右上角的數字,如果該數字等於要查詢的數字,則查詢結束 如果該數字大於要查詢的數字,則剔除這個數字所在的列 如果該數字小於...