藍橋杯 基礎練習 回形取數

2021-10-02 21:25:54 字數 1107 閱讀 9651

時間限制: 1sec 記憶體限制: 128mb

題目描述

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

輸入

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

輸出

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

樣例輸入

3 31 2 3

4 5 6

7 8 9

樣例輸出

1 4 7 8 9 6 3 2 5

分析:用num[105]陣列儲存數,用flag[105]陣列標記當前位置是否遍歷過,凡是遍歷過的就賦值1,從起點num[0][0]開始依次以下右上左的順序遍歷,當滿足下一地點未遍歷且沒有越界就繼續遍歷,凡是不滿足上述條件之一,此方向遍歷結束,進行下乙個方向遍歷。

c語言**如下:

#include

int num[

205]

[205

],flag[

205]

[205]=

;int

main()

}int count=1;

int x=

0,y=0;

printf

("%d"

,num[x]

[y])

; flag[x]

[y]=1;

while

(countwhile

(y+1

[y+1]==

0)while

(x-1

>=

0&&flag[x-1]

[y]==0)

while

(y-1

>=

0&&flag[x]

[y-1]==

0)}printf

("\n");

return0;

}

藍橋杯 基礎練習 回形取數

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

藍橋杯 基礎練習 回形取數

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

藍橋杯 基礎練習 回形取數Python

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