基礎練習 回形取數
時間限制: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
ac**,起初想法(這個有點麻煩,可以看下面那個思路)
#include
#include
#include
#include
#include
#include
using
namespace std;
int a[
200]
[200];
int flag[
200]
[200];
//是否訪問過
intmain()
if(flag[i]
[j]||i==aa)
break;}
//此時的i和j剛好符合要求 (左下角)
aa--
;//cout<<"i==")if
(flag[i]
[j]||j==bb)
break;}
//此時的i和j剛好符合要求(右下角)
bb--
;while(1
)if(flag[i]
[j]||i==cc)
break;}
//此時的i和j剛好符合要求(右上角)
cc++
;while(1
)//cout<<"j=="(flag[i]
[j]||j==dd)
break;}
dd++
;//cout<<"count=="(count==m*n)
break;}
return0;
}
ac**(精簡的):
#include
#include
#include
#include
#include
#include
using
namespace std;
int a[
200]
[200];
int flag[
200]
[200];
//是否訪問過
intmain()
while
(j+1
<=n-1&&
!flag[i]
[j+1])
while
(i-1
>=0&&
!flag[i-1]
[j])
while
(j-1
>=0&&
!flag[i]
[j-1])
}return0;
}
藍橋杯 回形取數
題目 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用乙個...
藍橋杯 回形取數
基礎練習 回形取數 時間限制 1.0s 記憶體限制 512.0mb 問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格...
藍橋杯 回形取數
問題描述 回形取數就是沿矩陣的邊取數,若當前方向上無數可取或已經取過,則左轉90度。一開始位於矩陣左上角,方向向下。輸入格式 輸入第一行是兩個不超過200的正整數m,n,表示矩陣的行和列。接下來m行每行n個整數,表示這個矩陣。輸出格式 輸出只有一行,共mn個數,為輸入矩陣回形取數得到的結果。數之間用...