OJ1070: 小汽车的位置(C语言)
題目描述
有一輛智能小車,最初(時間為0)的位置為(0,0),我們想知道它最后的位置。小車以每小時10公里的速度向北移動(以北為y軸正向,以東為x軸正向)。小車會受到一系列依照時間戳記排序的命令,1表示“向左轉(zhuǎn)”,2表示“向右轉(zhuǎn)”,3表“停止”。每個命令的前面有一個時間戳記,所以我們知道該命令是何時發(fā)出的。最后一個命令一定是“停止”。我們另外假設(shè),這輛小車非常靈活,它可以在瞬間轉(zhuǎn)彎。
以下列輸入為例。小車在時間為5的時候收到一個“向左轉(zhuǎn)”的命令1,在時間10收到一個“向右轉(zhuǎn)”的命令2,在時間15收到一個“停止”的命令3。那么在最后時間15的時候,小車的位置將在(-50,100)。程序只要求輸出小車最后的位置,第一個整數(shù)是x坐標(biāo),第二個整數(shù)是y坐標(biāo)。
輸入
輸入包含多個命令,每個命令由整數(shù)time和command組成,表示在時刻time發(fā)出命令command。command的取值范圍1-3,含義如上所述。
輸出
輸出占一行,包含兩個整數(shù),表示小車的最終位置。兩個整數(shù)之間由空格隔開。
樣例輸入 Copy
5
1
10
2
15
3
樣例輸出 Copy
-50 100
提示
此題信息量大,考查內(nèi)容較為綜合。
(1)數(shù)字化。可為四個方向編號,自向北開始,逆時針將4個方向依次編號為0,1,2,3。當(dāng)接到向左轉(zhuǎn)命令,方向號增1,向右轉(zhuǎn)則方向號減1。為避免出現(xiàn)負(fù)數(shù)或大于3的情況,可對4取模。
代碼轉(zhuǎn)載自青梅煮茶1111
#include<stdio.h> int main() {int x,y,t1,t2,c,p,d;x=y=p=d=0;while(scanf("%d%d",&t1,&c)){switch(d){case 0:y+=(t1-p)*10;break;case 1:x-=(t1-p)*10;break;case 2:y-=(t1-p)*10;break;case 3:x+=(t1-p)*10;break;}if(c==3)break;else if(c==1)d++;elsed--;d=(d+4)%4;p=t1;}printf("%d %d\n",x,y);return 0; }總結(jié)
以上是生活随笔為你收集整理的OJ1070: 小汽车的位置(C语言)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: visual c++ 技术资料(网络收集
- 下一篇: 原来国家的名字可以如此的浪漫~~!