zoukankan      html  css  js  c++  java
  • Java练习 SDUT-2585_机器人II

    机器人II

    Time Limit: 1000 ms Memory Limit: 65536 KiB

    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

    可以用数组存储方向,R加,L减,具体看代码。

    import java.util.*;
    
    public class Main {
        public static void main(String[] args) {
            Scanner cin = new Scanner(System.in);
            int t,x,y,f,i;
            char s[] = {'N','E','S','W'};
            String q;
            t = cin.nextInt();
            while(t-->0)
            {
            	f = 0;
            	x = y = 0;
            	q = cin.next();
            	for(i=0;i<q.length();i++)
            	{
            		if(q.charAt(i)=='M')
            		{
            			if(f==0)
            				y++;
            			else if(f==2)
            				y--;
            			else if(f==1)
            				x++;
            			else if(f==3)
            				x--;
            		}
            		else if(q.charAt(i)=='R')
            		{
            			f++;
            			if(f>3)
            				f -= 4;
            		}
            		else if(q.charAt(i)=='L')
            		{
            			f--;
            			if(f<0)
            				f += 4;
            		}
            	}
            	System.out.printf("%d %d %c
    ",x,y,s[f]);
            }
            cin.close();
        }
    }
    
  • 相关阅读:
    系统综合实践_5
    系统综合实践_4
    系统综合实践_3
    系统综合实践_2
    系统综合实践_1
    软件工程17—第09组 Beta版本演示
    软件工程16—第09组 Beta冲刺(4/4)
    软工实践个人总结
    第06组 Beta版本演示
    第06组 Beta冲刺(5/5)
  • 原文地址:https://www.cnblogs.com/luoxiaoyi/p/9713297.html
Copyright © 2011-2022 走看看