AcWing 756 蛇形矩陣(模擬法)

2021-10-21 12:05:38 字數 1253 閱讀 4248

**:

#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...