藍橋杯 回形取數 C 版 詳細記錄

2021-10-08 05:03:04 字數 1274 閱讀 5446

題目 1465: [藍橋杯][基礎練習vip]回形取數

時間限制: 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

個人做題心得:

這是一道看似很簡單,實則還行,操作下飯,debug難受的題目。

題目解析:

這道題目和之前記錄的蘭頓螞蟻有些許相似之處,這樣的乙個回形取數就像蛇形取數一樣。

講講自己的思路:

做題的幾個點:

#include

using

namespace std;

int m,n;

int a[

205]

[205];

int visit[

205]

[205]=

;//訪問陣列

int num;

int x=

0,y=0;

char s=

'd';

void

turn1()

// 向左轉

}voidgo(

)//朝著當前頭朝向前行1

}void

back()

//回退函式,用於返回上乙個點,這裡要注意xy的變化是根據轉向前的情況來的

}void

circle()

go();

if(visit[x]

[y]!=0)

//如果已經標記就轉向

elseif(

(x>m-

1||x<0)

||(y>n-

1||y<0)

)//越界就轉向

else

continue;}

}int

main()

}circle()

;}

這題目debug弄了好久,思想不難。

建議:

先把思路弄透徹了再考慮改**,不然一會乙個主意一會兒乙個主意的改**,真的極費時間。

藍橋杯 回形取數

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

藍橋杯 回形取數

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

藍橋杯 回形取數

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