机器人
蒜头君收到了一份礼物,是一个最新版的机器人。这个机器人有 444 种指令:
- forward x,前进 xxx 米。
- back x,先向后转,然后前进 xxx 米。
- left x,先向左转,然后前进 xxx 米。
- right x,先向右转,然后前进 xxx 米。
现在把机器人放在坐标轴原点,起始朝向为 xxx 轴正方向。经过一系列指令以后,你能告诉蒜头君机器人的坐标位置吗。坐标轴上一个单位长度表示 111 米。
输入格式
第一行输入一个整数 n(1≤n≤100)n(1 \le n \le 100)n(1≤n≤100) 表示指令的个数。
接下里 nnn 行,每行输入形如上面的指令,其中 −1000≤x≤1000-1000 \le x \le 1000−1000≤x≤1000。
输出格式
输出两个整数 x,yx,yx,y 表示机器人最后坐标。用空格隔开。
样例输入
10 back -9 left 3 left 8 back 15 right 10 right -7 right -3 left 11 right 17 left 3
样例输出
9 -7
package 计蒜客; import java.util.Scanner; public class 机器人 { /** * @param args */ static int i,j=0; //static String last="X+"; public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int n=scan.nextInt(); String last="X+"; for(int i=0;i<n;i++){ String str=scan.next(); int length=scan.nextInt(); last=fun(last,str,length); } System.out.print(i+" "+j); } public static String fun(String last,String now,int length){ //System.out.println(last); if(last.equals("X+")){ if(now.equals("forward")){ i=i+length; last="X+"; }else if(now.equals("back")){ i=i-length; last="X-"; }else if(now.equals("left")){ j=j+length; last="Y+"; }else if(now.equals("right")){ j=j-length; last="Y-"; } } else if(last.equals("X-")){ if(now.equals("forward")){ //System.out.println(i); i=i-length; last="X-"; }else if(now.equals("back")){ i=i+length; last="X+"; }else if(now.equals("left")){ j=j-length; last="Y-"; }else if(now.equals("right")){ j=j+length; last="Y+"; } } else if(last.equals("Y+")){ if(now.equals("forward")){ j=j+length; last="Y+"; }else if(now.equals("back")){ j=j-length; last="Y-"; }else if(now.equals("left")){ i=i-length; last="X-"; }else if(now.equals("right")){ i=i+length; last="X+"; } } else if(last.equals("Y-")){ if(now.equals("forward")){ j=j-length; last="Y-"; }else if(now.equals("back")){ j=j+length; last="Y+"; }else if(now.equals("left")){ i=i+length; last="X+"; }else if(now.equals("right")){ i=i-length; last="X-"; } } return last; } }