1 /*机器人II
2 时间限制:1000 ms | 内存限制:65535 KB
3 难度:1
4 描述
5 自从xiao_wu发明了只能向左转与向右转的机器人以后,热血沸腾的他又给机器人加了一个操作。假设机器人在二维坐标系的原点,
6 一开始面向Y轴正方向(北N),现在给你一个仅由’L’,’R’,’M’的串,其中L表示向左转,R表示向右转,M表示向所面对的方向走一个单位的距离,
7 试问经过操作过后,机器人的坐标和所面对的方向。
8 北(N),西(W),东(E),南(S)。
9 输入
10 第一行输入一个T(T<150),表示任务的个数
11 对于每个任务,输入一个串。(每个任务开始前机器人在原点,面向北(N),既Y轴正方向)
12 串长度不大于100
13 输出
14 对于每个任务,输出两个数表示机器人的坐标,一个字符表示机器人的面朝的方向。
15 样例输入
16 2
17 LRMLL
18 LMRMMLLL
19 样例输出
20 0 1 S
21 -1 2 E
22 来源
23 GDUT校赛
24 上传者
25 ACM_李如兵
26 */
27 #include<stdio.h>
28 #include<string.h>
29 int main()
30 {
31 int x, y, t, n;
32 char drict, s[101];
33 scanf("%d", &t);
34 while(t--)
35 {
36 x = y = 0;
37 drict = ‘N‘;
38 scanf("%s", s);
39 n = strlen (s);
40 int i;
41 for( i = 0; i< n; i++)
42 {
43 if( drict == ‘N‘)
44 {
45 if(s[i] == ‘L‘)
46 drict = ‘W‘;
47 else if( s[i] == ‘R‘)
48 drict = ‘E‘;
49 else
50 y++;
51 }
52 else if( drict == ‘S‘)
53 {
54 if(s[i] == ‘L‘)
55 drict = ‘E‘;
56 else if( s[i] == ‘R‘)
57 drict = ‘W‘;
58 else
59 y--;
60 }
61 else if( drict == ‘W‘)
62 {
63 if(s[i] == ‘L‘)
64 drict = ‘S‘;
65 else if( s[i] == ‘R‘)
66 drict = ‘N‘;
67 else
68 x--;
69 }
70 else
71 {
72 if(s[i] == ‘L‘)
73 drict = ‘N‘;
74 else if( s[i] == ‘R‘)
75 drict = ‘S‘;
76 else
77 x++;
78 }
79 }
80 printf("%d %d %c\n", x, y, drict);
81 }
82 return 0;
83 }
机器人II,码迷,mamicode.com
时间: 2024-10-09 12:03:21