一对机器人在火星,美国宇航局的人为了观察火星的全貌,控制机器人的位置,把火星划分为栅格形状的,一个机器人的位置用X,Y表示,用N,E,S,W表示机器人的朝向,L,R控制机器人转向,M表示走一格,规定左下角是0,0坐标  第一行输入 右上 角的位置 例如输入5 5
                 1 2 N
                 LMLMLMLMM
             输出3 3E  第二行是现在的位置

解决方案 »

  1.   

    5 5是右上角的位置
    1 2 N是现在的位置
    5 5也就是最大的位置
    3 3E就是执行LMLMLMLMM后的位置
      

  2.   

    5 5是右上角的位置
    1 2 N是现在的位置
    5 5也就是最大的位置
    3 3E就是执行LMLMLMLMM后的位置
      

  3.   

    起始位置是1 2 N  执行LMLMLMLMM应该是 1 3 N吧
    1 2 N -- LM--0 2 W--LM--0 1 S--LM--1 1 E--LM--1 2 N--M-1 3 N 
    算法是这样的吧
    上北下南左西右东
     
      

  4.   


                Console.WriteLine("请输入右上角坐标");  //输入5 5
                string [] aa = Console.ReadLine().Split(' ');
                int i = Convert.ToInt32(aa[0]);
                int j = Convert.ToInt32(aa[1]);            Console.WriteLine("请输入当前坐标和位置");  //输入1 2 N
                string[] SSS = Console.ReadLine().Split(' ');
                int X = Convert.ToInt32(SSS[0]);
                int Y = Convert.ToInt32(SSS[1]);
                string direction = SSS[2];            Console.WriteLine("请输入操作");  //LMLMLMLMM
                char [] step = Console.ReadLine().ToCharArray();            foreach (char ss in step)
                {
                    if(ss=='L')
                    {
                        switch (direction)
                        {
                            case "N":
                                direction = "W";
                                break;
                            case "W":
                                direction = "S";
                                break;
                            case "S":
                                direction = "E";
                                break;
                            case "E":
                                direction = "N";
                                break;
                            default:
                                break;
                        }                  
                    }                if (ss == 'R')
                    {
                        switch (direction)
                        {
                            case "N":
                                direction = "E";
                                break;
                            case "W":
                                direction = "N";
                                break;
                            case "S":
                                direction = "W";
                                break;
                            case "E":
                                direction = "S";
                                break;
                            default:
                                break;
                        }  
                    }                if (ss == 'M')
                    {
                        switch (direction)
                        {
                            case "N":
                                Y += 1;
                                break;
                            case "S":
                                Y -= 1;
                                break;
                            case "E":
                                X += 1;
                                break;
                            case "W":
                                X -= 1;
                                break;
                        }
                    }
                }            Console.WriteLine(X.ToString()+' '+Y.ToString()+' '+direction);  //结果1 3 N
                Console.ReadLine();
    写了个控制台程序  输入的时候字符中间用空格,右上角坐标那个没有加验证也就是X和Y不能大于5,你自己看着加吧
      

  5.   

    比如输入5 5
            1 2 N
            LMLMLMLMM
            3 3 E
            MMRMMRMRRM
         输出1 3N
             5 1E