基礎練習 回形取數

2022-01-15 11:56:08 字數 1442 閱讀 4425

問題描述

回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。

輸入格式

輸入第一行是兩個不超過200的正整數m, n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。

輸出格式

輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用乙個空格分隔,行末不要有多餘的空格。

樣例輸入

3 3

1 2 3

4 5 6

7 8 9

樣例輸出

1 4 7 8 9 6 3 2 5

樣例輸入

3 2

1 2

3 4

5 6

樣例輸出

1 3 5 6 4 2

思路:以乙個circle為迴圈標記,類似於往裡邊繞圈的感覺,每繞一圈,要遍歷的元素顯然越來越少,用四個for迴圈分別輸出左邊下邊右邊上邊,不過這四種輸出的方式比較難想,以 count < col * row 為迴圈結束標誌即可。

1 #include2 #include

3 #include4

5int main(void)6

17for (i = 0; i < row; i++)

1823}24

25int circle = 0;26

int count = 0;27

28while (count < row *col)

2935

for (j = circle + 1; j < col - circle && count < row * col; j++) //

下邊36

40for (k = row - 2 - circle; k >= circle && count < row * col; k--) //

右邊41

45for (h = col - 2 - circle; h >= circle + 1 && count < row * col; h--) //

上邊46

50 circle += 1;51

}52return0;

53 }

基礎練習 回形取數

問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用...

基礎練習 回形取數

基礎練習 回形取數 時間限制 1.0s 記憶體限制 512.0mb 提交此題 錦囊1 錦囊2 問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個...

基礎練習 回形取數

問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用...