題解輸入兩個整數n和m,輸出乙個n行m列的矩陣,將數字1到n*m按照回字蛇形填充至矩陣中。具體矩陣形式可參考樣例。
輸入共一行,包含兩個整數n和m。
輸出滿足要求的矩陣。
矩陣佔n行,每行包含m個空格隔開的整數。
1 ≤ n, m ≤ 100
3 3
1 2 3本題主要是考察了陣列,我們可以使用兩種方法解決本題目。第一種方法是使用8 9 4
7 6 5
while迴圈
,第二種方法是使用for迴圈
。
首先設定初始座標為(0, 0)
,然後將結果二維陣列q[n][n]
的第乙個元素設定為1
,計數器cnt
的初始值為1
。使用while迴圈來進行填數,只要cnt < n * m
就進行填數。使用四條while迴圈來依次填4個方向的數字,先判斷下乙個要填的位置是否出界,如果沒有出界在判斷該位置的數字是否已經填過數字了,如果沒有填過則將++cnt
賦值給下乙個陣列元素。直到填完整個陣列。
#include
#include
using
namespace std;
const
int n =
110;
int q[n]
[n];
intmain()
for(
int i =
0; i < n; i++
) cout << endl;
}return0;
}
一直向乙個方向填數,如果下乙個位置出界
或者已經被填過數了
,那麼就改變方向繼續進行填數。
#include
using
namespace std;
const
int n =
110;
int m, n;
int q[n]
[n];
bool
inmap
(int x,
int y)
intmain()
, dy=
;int x =
0, y =
0, d =1;
for(
int i =
1; i <= n * m; i++
) x = x1, y = y1;
}for
(int i =
0; i < n; i++
) cout << endl;
}return0;
}
未完待續,持續更新中……AcWing 756 蛇形矩陣
輸入兩個整數n和m,輸出乙個n行m列的矩陣,將數字 1 到 n m 按照回字蛇形填充至矩陣中。具體矩陣形式可參考樣例。輸入格式 輸入共一行,包含兩個整數n和m。輸出格式 輸出滿足要求的矩陣。矩陣佔n行,每行包含m個空格隔開的整數。資料範圍 1 n,m 100 輸入樣例 3 3輸出樣例 123 894...
ACwing 756蛇形矩陣
題目描述 輸入兩個整數n和m,輸出乙個n行m列的矩陣,將數字 1 到 n m 按照回字蛇形填充至矩陣中。具體矩陣形式可參考樣例。輸入格式 輸入共一行,包含兩個整數n和m。輸出格式 輸出滿足要求的矩陣。矩陣佔n行,每行包含m個空格隔開的整數。資料範圍 1 n,m 1001 n,m 100 輸入樣例 3...
AcWing 756 蛇形矩陣
題目描述 輸入兩個整數n和m,輸出乙個n行m列的矩陣,將數字 1 到 n m 按照回字蛇形填充至矩陣中。具體矩陣形式可參考樣例。輸入格式 輸入共一行,包含兩個整數n和m。輸出格式 輸出滿足要求的矩陣。矩陣佔n行,每行包含m個空格隔開的整數。資料範圍 1 n,m 100 輸入樣例3 3輸出樣例1 2 ...