首页 > 其他 > 详细

T088 路痴

时间:2015-11-21 15:43:21      阅读:251      评论:0      收藏:0      [点我收藏+]

技术分享

     因为0左1右,我们可以考虑将四个方向用四个相邻整数来代替。例如:d=0是南,d=1是东,开始面向南,如果输入一个0代表左转,那么d++,d=1代表面向东了;输入一个1代表右转,那么d--,d=-1,d<0了,我们可以加一步判断如果d<0就给d+4,因为4是一个周期,运算之后不会有影响,d>=0?d:d+4,d=3代表面向东,有同学会想,如果我一直右拐怎么办,不能无限制的定义东西南北吧。因为只有四个方向,0 1 2 3,我们可以利用取模运算,例如运算之后d=5,d%4=1,他还是面向东面的,问题得到解决

#include <stdio.h>

int main() 
{ 
    char fx[6];
    int n,i,d,j; 
    scanf("%s%d",fx,&n); 
    switch(fx[0])
    {  
        case S: d=0;
          break;
        case E: d=1;
          break; 
        case N: d=2;
          break;
        case W: d=3;
          break;
    } 
    for(i=0;i<n;i++)
    { 
        scanf("%d",&j);
        if(j==0) d++;
        else d--; 
    } 
    d%=4; 
    switch(d>=0?d:d+4)
    {  
        case 0: printf("South\n");
          break;
        case 1: printf("East\n");
          break;
        case 2: printf("North\n");
          break; 
        case 3: printf("West\n"); 
          break; 
    }   
    return 0;
}

 

T088 路痴

原文:http://www.cnblogs.com/striderdu/p/4983817.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!