• ACM机器人


    机器人

    Time Limit:1000MS  Memory Limit:65536K
    Total Submit:265 Accepted:103

    Description

    早期的机器人只有2种操作,既向左转和向右转。

    现在有一个机器人,一开始面向北(N),给你一个仅由’L’,’R’组成的串,其中L表示向左转,R表示向右转,问经过一系列的转动后机器人面朝哪个方向。

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

    Input

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

    Output

    输出一个字母,表示面朝的方向

    Sample Input

    2
    LLLL
    LRLRL
    

    Sample Output

    N
    W
    

    Hint

    上北下南左西右东

    Source

    xiao_wu

    我的解法是

     #include<stdio.h>
    int main()
    {
    	int j=0;
    	int n;
    	int i=0;
    	char diretion[100];
    	int end_dt;
    	scanf("%d",&n);
    	for(i=0;i<n;i++)
    	{
    	end_dt=4;
    	scanf("%s",diretion);
    	while(diretion[j]!='\0')
    	{
    		char c;
    		c=diretion[j];
    		if(c=='L')
    		{
    			if(end_dt==1)
    				end_dt=4;
    			else
    				end_dt--;
    		}
    		if(c=='R')
    		{
    			if(end_dt==4)
    				end_dt=1;
    			else
    				end_dt++;
    		}
    		j++;
    	}
    	if(end_dt==4)
    		printf("N\n");
    	 if(end_dt==3)
    		printf("W\n");
    	 if(end_dt==2)
    		printf("S\n");
    	if(end_dt==1)
    		printf("E\n");
             j=0;
    
    	}
    	return 0;
    }
    

     做题心得:开始位置用end_dt表示为4,左转的话end_dt减掉1,右转的话end_dt加上1,当end_dt为4时表示右转回到原来的位置,重新置1,当end_dt为1时,表示左转回到原来的位置,重新置为4.

  • 相关阅读:
    通用标签
    网页基础
    WCF---服务发布的步骤
    锁·——lock关键字详解
    C# 实现磁性窗体
    C#中的线程(三) 使用多线程
    C#中的线程(二) 线程同步基础
    C#中的线程(一)入门
    class A<T> where T:class 这个泛型类中的Where T:class什么意思
    OO真经——关于面向对象的哲学体系及科学体系的探讨(下)
  • 原文地址:https://www.cnblogs.com/LJTbozai/p/2484814.html
Copyright © 2020-2023  润新知