【19年真题】迷路的牛牛

题目描述

牛牛去犇犇老师家补课,出门的时候面向北方,但是现在他迷路了。虽然他手里有一张地图,但是他需要知道自己面向哪个方向,请你帮帮他。
输入描述
每个输入包含一个测试用例。
每个测试用例的第一行包含一个正整数,表示转方向的次数N(N <= 1000)。
接下来的一行包含一个长度为N的字符串,由L和R组成,L表示向左转,R表示向右转。
输出描述
输出牛牛最后面向的方向,N表示北,S表示南,E表示东,W表示西。
示例

输入 3 LRR
输出 E

思路: 刚开始看时,有些没读懂,在纸上画一画就很清楚了
在这里插入图片描述
最开始在北,
左转一次在西,两次到南,三次到东,四次就到原位了
右转一次到东,两次到南,三次到西,四次到原位
所以,可以左转则次数–,右转++,四次为一个周期(看余数)
可以用switch…case语句来完成

#include<iostream>
#include<string>
using namespace std;
int main()
{
 int n = 0;
 string str;
 cin >> n >> str;
 int count = 0;
 for (int i = 0; i<n; i++)
 {
  if (str[i] == 'L') count--;
  else count++;
 }
 count %= 4;//4为一个周期
 switch (count)
 {
 case -4:
 case 0:
  cout << 'N' << endl;
  break;
 case -3:
 case 1:
  cout << 'E' << endl;
  break;
 case -2:
 case 2:
  cout << 'S' << endl;
  break;
 case -1:
 case 3:
  cout << 'W' << endl;
  break;
 }
 return 0;
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值