看到这题,我最先想到是时钟旋转的360度。

  • N: 0度
  • E: 90度
  • S: 180度
  • W: 270度

向左旋转L,即是-90
向右旋转R,即是+90
为了防止负数和值过大,需要 p   =   (p   +/-   90   +   360)   %   360

代码如下:

#include <iostream>

using namespace std;

int main() {

    int n, p = 0;
    char x;
    cin >> n;
    while (n--) {
        cin >> x;
        if (x == 'L')
            p = (p - 90 + 360) % 360;
        else
            p = (p + 90 + 360) % 360;
    }

    if (p == 0)
        cout << 'N' << endl;
    else if (p == 90)
        cout << 'E' << endl;
    else if (p == 180)
        cout << 'S' << endl;
    else
        cout << 'W' << endl;

    return 0;
}