演算法 藍橋杯 基礎練習 回形取數

2022-07-31 03:33:15 字數 1256 閱讀 9835

提交此題

資源限制

時間限制:1.0s   記憶體限制:512.0mb

問題描述

回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉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

樣例輸入

3 21 2

3 45 6

樣例輸出

1 3 5 6 4 2

#include void anticlockwise(int a[200], int m, int

n);int

main()

}anticlockwise(a,m,n);

return0;

} void anticlockwise(int a[200],int m,int n)//

注意二維陣列傳參的問題,可以給列先設定乙個可以滿足的最大,這樣比較方便

//再輸出下面的一排,行不變,列++

//行恢復

h=rightdownhang;

//列向右移動

if(n==1

)

l++;

while(l<=rightdownlie)

//再輸出右邊的一列,列不變,行++

//恢復

l=rightdownlie;

//行--

h--;

if(m==1

)

while(h>=leftuphang)

//最後輸出上邊的一排,行不變,列--

//恢復

h=leftuphang;

//列移動

l--;

while(l>leftuplie)

leftuphang++;

leftuplie++;

rightdownhang--;

rightdownlie--;

}}

以上**,大致思路是對的,只不過對於特定是一些情況的時候仍然需要討論一下才行,比如只有一行,或者只有一列的情況就需要設定退出條件

藍橋杯 基礎練習 回形取數

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

藍橋杯 基礎練習 回形取數

時間限制 1sec 記憶體限制 128mb 題目描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出 輸出只有一行,共mn個數,為...

藍橋杯 基礎練習 回形取數

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