ZZULIOJ 1070 小汽車的位置

2021-10-02 09:00:16 字數 1011 閱讀 2511

有一輛智慧型小車,最初(時間為0)的位置為(0,0),我們想知道它最後的位置。小車以每小時10公里的速度向北移動(以北為y軸正向,以東為x軸正向)。小車會受到一系列依照時間戳記排序的命令,1表示「向左轉」,2表示「向右轉」,3表「停止」。每個命令的前面有乙個時間戳記,所以我們知道該命令是何時發出的。最後乙個命令一定是「停止」。我們另外假設,這輛小車非常靈活,它可以在瞬間轉彎。

以下列輸入為例。小車在時間為5的時候收到乙個「向左轉」的命令1,在時間10收到乙個「向右轉」的命令2,在時間15收到乙個「停止」的命令3。那麼在最後時間15的時候,小車的位置將在(-50,100)。程式只要求輸出小車最後的位置,第乙個整數是x座標,第二個整數是y座標。

輸入包含多個命令,每個命令由整數time和command組成,表示在時刻time發出命令command。command的取值範圍1-3,含義如上所述。

輸出佔一行,包含兩個整數,表示小車的最終位置。兩個整數之間由空格隔開。

5

1 10

2 15

3

-50 100
此題資訊量大,考查內容較為綜合。

(1)數位化。可為四個方向編號,自向北開始,逆時針將4個方向依次編號為0,1,2,3。當接到向左轉命令,方向號增1,向右轉則方向號減1。為避免出現負數或大於3的情況,可對4取模。

tips:

1 把自己的思路變成**去實現功能

2  單步除錯找到不符合預期的輸出去改正

3 把抽象的東西具體化,如把上下左右四個方向變為 0 1 2 3

5  方向數位化後,可以把左轉表示方向號+1  右轉方向號-1

6  為了避免出現負數或大於3的情況,可以把 (方向號 +4)% 4

#includevoid calc(int fangxiang,int b,int *x,int *y)

}int main()

else if (b==2)

else if (b == 3)

min = a;

}}

ZZULIOJ 1070 小汽車的位置

題目描述 有一輛智慧型小車,最初 時間為0 的位置為 0,0 我們想知道它最後的位置。小車以每小時10公里的速度向北移動 以北為y軸正向,以東為x軸正向 小車會受到一系列依照時間戳記排序的命令,1表示 向左轉 2表示 向右轉 3表 停止 每個命令的前面有乙個時間戳記,所以我們知道該命令是何時發出的。...

輕院1070 小汽車的位置

有一輛智慧型小車,最初 時間為0 的位置為 0,0 我們想知道它最後的位置。小車以每小時10公里的速度向北移動 以北為y軸正向,以東為x軸正向 小車會受到一系列依照時間戳記排序的命令,1表示 向左轉 2表示 向右轉 3表 停止 每個命令的前面有乙個時間戳記,所以我們知道該命令是何時發出的。最後乙個命...

HAUTOJ 1070 小汽車的位置

題目描述 有一輛智慧型小車,最初 時間為0 的位置為 0,0 我們想知道它最後的位置。小車以每小時10公里的速度向北移動 以北為y軸正向,以東為x軸正向 小車會受到一系列依照時間戳記排序的命令,1表示 向左轉 2表示 向右轉 3表 停止 每個命令的前面有乙個時間戳記,所以我們知道該命令是何時發出的。...