机器人

问题描述

蒜头君收到了一份礼物,是一个最新版的机器人。这个机器人有 4 种指令: 
forward x,前进x米。 
back x,先向后转,然后前进x米。 
left x,先向左转,然后前进x米。 
right x,先向右转,然后前进x米。 
现在把机器人放在坐标轴原点,起始朝向为x轴正方向。经过一系列指令以后,你能告诉蒜头君机器人的坐标位置吗。坐标轴上一个单位长度表示1米。 
这里写图片描述 
输入格式 
第一行输入一个整数n(1≤n≤100) 表示指令的个数。 
接下里n行,每行输入形如上面的指令,其中−1000≤x≤1000。 
输出格式 
输出两个整数x,y表示机器人最后坐标。用空格隔开。 
样例输入 
10 
back -9 
left 3 
left 8 
back 15 
right 10 
right -7 
right -3 
left 11 
right 17 
left 3 
样例输出 
9 -7

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	char ch[10];
	int vis[4]={0};
	int n,j=0,x=0,y=0;
	cin>>n;
	while(n--)
	{
		int k;
		cin>>ch;
		cin>>k;
		if(strcmp(ch,"forward")==0)
		{
			vis[j]+=k;
		}
		if(strcmp(ch,"back")==0)
		{
			j=(j+2)%4;
			vis[j]+=k;
			
		}
		if(strcmp(ch,"left")==0)
		{
			j=(j+1)%4;
			vis[j]+=k;
		}
		if(strcmp(ch,"right")==0)
		{
			j=(j+7)%4;
			vis[j]+=k;	
		}
	}
    	x=vis[0]-vis[2];
	    y=vis[1]-vis[3];
	    cout<<x<<" "<<y<<endl;
	    return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值