蒜头君收到了一份礼物,是一个最新版的机器人。这个机器人有 44 种指令:
forward x,前进 xx 米。
back x,先向后转,然后前进 xx 米。
left x,先向左转,然后前进 xx 米。
right x,先向右转,然后前进 xx 米。
现在把机器人放在坐标轴原点,起始朝向为 xx 轴正方向。经过一系列指令以后,你能告诉蒜头君机器人的坐标位置吗。坐标轴上一个单位长度表示 11 米。
输入格式
第一行输入一个整数 n(1 le n le 100)n(1≤n≤100) 表示指令的个数。
接下里 nn 行,每行输入形如上面的指令,其中 -1000 le x le 1000−1000≤x≤1000。
输出格式
输出两个整数 x,yx,y 表示机器人最后坐标。用空格隔开。
样例输入
10
back -9
left 3
left 8
back 15
right 10
right -7
right -3
left 11
right 17
left 3
样例输出
9 -7
题意:???注意机器人的初始朝向是x轴,机器人的移动的前后左右是相对它的朝向的,所有它的前后左右每次转弯都会改变!!!
代码网上看的,有点意思^-^.
1 #include <map> 2 #include <stack> 3 #include <queue> 4 #include <cmath> 5 #include <string> 6 #include <limits> 7 #include <cstdio> 8 #include <vector> 9 #include <cstdlib> 10 #include <cstring> 11 #include <iostream> 12 #include <algorithm> 13 #define Scc(c) scanf("%c",&c) 14 #define Scs(s) scanf("%s",s) 15 #define Sci(x) scanf("%d",&x) 16 #define Sci2(x, y) scanf("%d%d",&x,&y) 17 #define Sci3(x, y, z) scanf("%d%d%d",&x,&y,&z) 18 #define Scl(x) scanf("%I64d",&x) 19 #define Scl2(x, y) scanf("%I64d%I64d",&x,&y) 20 #define Scl3(x, y, z) scanf("%I64d%I64d%I64d",&x,&y,&z) 21 #define Pri(x) printf("%d ",x) 22 #define Prl(x) printf("%I64d ",x) 23 #define Prc(c) printf("%c ",c) 24 #define Prs(s) printf("%s ",s) 25 #define For(i,x,y) for(int i=x;i<y;i++) 26 #define For_(i,x,y) for(int i=x;i<=y;i++) 27 #define FFor(i,x,y) for(int i=x;i>y;i--) 28 #define FFor_(i,x,y) for(int i=x;i>=y;i--) 29 #define Mem(f, x) memset(f,x,sizeof(f)) 30 #define LL long long 31 #define ULL unsigned long long 32 #define MAXSIZE 505 33 #define INF 0x3f3f3f3f 34 35 const int mod=1e9+7; 36 const double PI = acos(-1.0); 37 38 using namespace std; 39 int main() 40 { 41 int n; 42 cin>>n; 43 int x=0,y=0; 44 int head=0; 45 char s[10]; 46 int temp; 47 while(n--) 48 { 49 cin>>s>>temp; 50 if(s[0]=='f') 51 head%=4; 52 else if(s[0]=='l') 53 head=(head+1)%4; 54 else if(s[0]=='b') 55 head=(head+2)%4; 56 else if(s[0]=='r') 57 head=(head+3)%4; 58 //我这种0 1 2 3 分别代表相对x轴的前 左 后 右 59 if(head==0) 60 x+=temp; 61 else if(head==1) 62 y+=temp; 63 else if(head==2) 64 x-=temp; 65 else 66 y-=temp; 67 } 68 cout<<x<<" "<<y; 69 return 0; 70 }
Fighting!