海龟作图(turtle)
内存限制: 256 MiB 时间限制: 1000 ms 标准输入输出 题目类型: 传统 评测方式: 文本比较
题目描述
题目描述
二维平面上有一只海龟,一开始,海龟面向X轴正方向,位于坐标原点(0,0)。接下来,海龟接受一连串命令,每个命令可以用一个大写字母表示:
R
表示海龟沿顺时针旋转 90 度;L
表示海龟沿逆时针旋转 90 度;F
表示海龟沿当前方向前进一个单元;B
表示海龟沿当前方向后退一个单元。
请求出结束时,海龟的位置坐标。
输入格式
第一行输入一个整数 n,表示命令的数量
第二行输入 n 个字符:表示海龟的移动指令
输出格式
两个整数:表示海龟的坐标
样例数据
样例输入 1
复制3
FFF
样例输出 1
复制3 0
样例输入 2
复制3
LFF
样例输出 2
复制0 2
样例输入 3
复制4
FBLR
样例输出 3
复制0 0
数据范围
n <= 10 ^ 5
#include <bits/stdc++.h>
using namespace std;
int a, x, y;
int o = 90;
int main() {
scanf("%d\n", &a);
for(int i = 1; i <= a; i++) {
char n;
scanf("%c", &n);
if(n == 'R') {
o = (o + 450) % 360;
} else if(n == 'L') {
o = (o + 270) % 360;
} else if(n == 'F') {
if(o == 0) {
y++;
} else if(o == 180) {
y--;
} else if(o == 90) {
x++;
} else {
x--;
}
} else {
if(o == 0) {
y--;
} else if(o == 180) {
y++;
} else if(o == 90) {
x--;
} else {
x++;
}
}
}
printf("%d %d", x, y);
return 0;
}