题目描述
PIPI升级了蠢蠢机器人,现在机器人站在直角坐标系的原点,面向y轴正方向,给定若干指令,求机器人最终位置。
指令格式:
“TURN”:右转90度。
“GO” NUM:直走NUM的距离。
输入
输入包含多组测试数据,每组数据第一行为m,表示有m个操作,1<= m <= 100。
接下来m行,每行一个指令。
输出
每组数据对应一行输出机器人最终所在的坐标,以空格隔开,保留3位小数。
样例输入
3 TURN GO 1 TURN
样例输出
1.000 0.000
AC Code
#include<iostream>
#include<cmath>
#include<cstring>
//#include<vector>
//#include<list>
//#include<stack>
//#include<queue>
//#include<map>
//#include<set>
//#include<cstdio>
//#include<cstdlib>
//#include<algorithm>
using namespace std;
typedef long long ll;
const double PI=acos(-1);
const double EPS=1e-6;
const int INF=0x3f3f3f3f;
const int MAXN=1000+10;
int a[MAXN];
double dis,x=0,y=0;
int main(){
freopen("C:\\Users\\Ambition\\Desktop\\in.txt","r",stdin);
int m,direction=0; //0表示y轴正向 1表示x轴正向 2表示y负向 3表示x轴负向
char command[10];
while(~scanf("%d", &m)){
x=0; y=0; direction=0;
for(int i=0; i<m; ++i){
scanf("%s",command);
if(command[0]=='T') direction=(direction+1)%4;
if(command[0]=='G'){
scanf("%lf",&dis);
switch(direction){
case 0: y+=dis; break;
case 1: x+=dis; break;
case 2: y-=dis; break;
case 3: x-=dis; break;
}
}
}
printf("%.3lf %.3lf\n", x, y);
}
return 0;
}