首页 > 代码库 > 机器人II
机器人II
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 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。