CSUOJ 1042——遥控机器人

一:问题描述

  • Description

机器人站在笛卡尔坐标系的原点,面向y轴正方向,给定若干指令,求机器人最终位置。

  • Input

      多组测试数据,每组数据第一行为m,表示有m个操作,0 < m< 100。

      接下来m行,每行一个指令。

      指令格式:

“TURN”:右转90度。

“GO” NUM:直走NUM的距离。

  • Output

      每组数据对应一行输出机器人最终所在的坐标,空格隔开,保留3位小数。

数据保证最终结果可以用double精确表示。

  • Sample Input

3

TURN

GO 1

TURN

Sample Output

1.000 0.000

二、问题分析

没啥好分析的,一道水题,只需要判断输入的指令然后用0,1,2,3表示此时机器人的状态(即面朝的方向),每次接收指令之后修改对应的状态或在对应的方向上前进即可

三、AC代码

​#include "stdafx.h"
#include
#include
#include
using namespace std;
 
int main()
{
    int m;

    while (cin>>m)       //cout <<"请输入指令个数:";
    {
        int status[1] = { 0 };
        double x = 0, y = 0, num;
        string inst;
        int i;

        for (i = 0; i < m;i++)
        {
            //cout << "请输入指令:";
            cin>> inst;

            if (inst == "TURN")
            {
                if ((status[0] += 1)== 4)
                {
                    status[0]= 0;
                }
                //cout << status[0];
            }
            else if (inst == "GO")
            {
                cin>> num;
                switch (status[0])
                {
                    case 0: y += num; break;
                    case 1: x += num; break;
                    case 2: y -= num; break;
                    case 3: x -= num; break;
                }
            }
        }
        cout<< setiosflags(ios::fixed)<

 

你可能感兴趣的:(CSUOJ 1042——遥控机器人)