机器人II(简单模拟)(Java代码)

该博客介绍了一个基于Java实现的机器人模拟程序,机器人初始位于二维坐标系原点,面向Y轴正方向。通过'L'(左转)、'R'(右转)和'M'(移动)指令,计算机器人的最终位置和朝向。程序读取输入字符串并根据指令更新机器人的坐标和方向。示例展示了如何处理一系列任务,并输出机器人的坐标和方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器人II

Time Limit: 1000 ms Memory Limit: 65536 KiB

Submit Statistic

Problem Description

自从xiao_wu发明了只能向左转与向右转的机器人以后,热血沸腾的他又给机器人加了一个操作。假设机器人在二维坐标系的原点,一开始面向Y轴正方向(北N),现在给你一个仅由’L’,’R’,’M’的串,其中L表示向左转,R表示向右转,M表示向所面对的方向走一个单位的距离,试问经过操作过后,机器人的坐标和所面对的方向。

北(N),西(W),东(E),南(S)。

Input

 

第一行输入一个T(T<150),表示任务的个数 
对于每个任务,输入一个串。(每个任务开始前机器人在原点,面向北(N),既Y轴正方向) 
串长度不大于100 

Output

 

对于每个任务,输出两个数表示机器人的坐标,一个字符表示机器人的面朝的方向。

Sample Input

2
LRMLL
LMRMMLLL

Sample Output

0 1 S
-1 2 E

Hint

代码:

import java.util.Scanner;

public class Main {//把所有的数字都打出来。
    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        int T = reader.nextInt();
        reader.nextLine();
        while(T-->0)
        {
            String str = reader.nextLine();
            int x = 0;
            int y = 0;
            char ch = 'N';
            for(int i=0;i<str.length();i++)
            {
                if(str.charAt(i)=='L')
                {
                    if(ch=='N')
                        ch = 'W';
                    else if(ch=='W')
                        ch = 'S';
                    else if(ch=='S')
                        ch = 'E';
                    else if(ch=='E')
                        ch = 'N';
                }
                else if(str.charAt(i)=='R')
                {
                    if(ch=='N')
                        ch = 'E';
                    else if(ch=='E')
                        ch = 'S';
                    else if(ch=='S')
                        ch = 'W';
                    else if(ch=='W')
                        ch = 'N';
                }
                else if(str.charAt(i)=='M')
                {
                    if(ch=='N')
                        y++;
                    else if(ch=='E')
                        x++;
                    else if(ch=='S')
                        y--;
                    else if(ch=='W')
                        x--;
                }
            }
            System.out.println(x+" "+y+" "+ch);
        }
        reader.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值