NYOJ 371 机器人II
生活随笔
收集整理的這篇文章主要介紹了
NYOJ 371 机器人II
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
描述 第一行輸入一個T(T<150),表示任務(wù)的個數(shù)?
對于每個任務(wù),輸入一個串。(每個任務(wù)開始前機器人在原點,面向北(N),既Y軸正方向)?
串長度不大于100? 輸出對于每個任務(wù),輸出兩個數(shù)表示機器人的坐標(biāo),一個字符表示機器人的面朝的方向。 樣例輸入 2
LRMLL
LMRMMLLL 樣例輸出 0 1 S
-1 2 E 解題思路:我們可以用數(shù)字dir來記錄機器人的方向,因為只有四個方向,且開始時是面朝北,所以就用四的倍數(shù)來記錄北方,左拐時dir-1,當(dāng)減到1時再左拐就讓dir變?yōu)?,因為面向東邊左拐時是北邊,用3記錄西面,2記錄南面,1記錄東面。
#include<stdio.h>
#include<string.h>
int main()
{int n,i,j,dir,x,y,len;char s[105];scanf("%d",&n);while(n--){scanf("%s",s);dir=4;x=y=0;len=strlen(s);for(i=0;i<len;i++){if(s[i]=='L'){if(dir==1)dir=4; //開始面向東,再左拐就是北elsedir--;}else if(s[i]=='R'){if(dir==4)dir=1; //開始面向北,再右拐就是東elsedir++;}else if(s[i]=='M'){if(dir%4==0)y++; //向上走if(dir%4==3)x--; //向左走else if(dir%4==2)y--; //向下走else if(dir%4==1)x++; //向右走}}printf("%d %d ",x,y);if(dir%4==0)printf("N\n");else if(dir%4==3)printf("W\n");else if(dir%4==2)printf("S\n");else printf("E\n");}return 0;
}
自從xiao_wu發(fā)明了只能向左轉(zhuǎn)與向右轉(zhuǎn)的機器人以后,熱血沸騰的他又給機器人加了一個操作。假設(shè)機器人在二維坐標(biāo)系的原點,一開始面向Y軸正方向(北N),現(xiàn)在給你一個僅由’L’,’R’,’M’的串,其中L表示向左轉(zhuǎn),R表示向右轉(zhuǎn),M表示向所面對的方向走一個單位的距離,試問經(jīng)過操作過后,機器人的坐標(biāo)和所面對的方向。
北(N),西(W),東(E),南(S)。
輸入對于每個任務(wù),輸入一個串。(每個任務(wù)開始前機器人在原點,面向北(N),既Y軸正方向)?
串長度不大于100?
總結(jié)
以上是生活随笔為你收集整理的NYOJ 371 机器人II的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NYOJ 420 p次方求和 大数
- 下一篇: 因为知道了30+款在线工具,我的工作效率