**:
#include
using
namespace std;
const
int n =
110;
int a[n]
[n];
intmain()
top++
;for
(int i=top; i<=bottom&&left<=right; i++
) right--
;for
(int i=right; i>=left&&top<=bottom; i--
) bottom--
;for
(int i=bottom; i>=top&&left<=right; i--
) left++;}
for(
int i=
0; i(i!=n-1)
cout<}return0;
}
分析:
從題目描述中可以分析出,蛇形矩陣就是從矩陣的左上角->右上角->右下角->左下角的乙個由外向內的迴圈。那麼我們就可以通過模擬這樣的過程給陣列賦值,從而得到我們想要的結果並輸出。
**段落分析:
while
(left<=right||top<=bottom)
top++
;for
(int i=top; i<=bottom&&left<=right; i++
) right--
;for
(int i=right; i>=left&&top<=bottom; i--
) bottom--
;for
(int i=bottom; i>=top&&left<=right; i--
) left++
;}
第乙個for迴圈,i控制列從left->right,並且行top始終不變,可以將陣列從第top行的第left個遍歷到第right個。而迴圈條件可以保證在整個while迴圈中,這乙個for迴圈始終控制的是矩陣最上端的一行。
第二個for迴圈,i控制行從top->bottom,並且列right始終不變,可以將陣列從第right列的第top個遍歷到第bottom個。迴圈條件可以保證在整個while迴圈中,這乙個for迴圈始終控制的是矩陣最右端的一列。
同理,第三個迴圈控制最下端的一行,第四個迴圈控制最左端的一列。
AcWing 756 蛇形矩陣
題解輸入兩個整數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 本題主要是考察了陣列,我們可以...
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...