上海市计算机学会竞赛平台2022年2月月赛丙组海龟作图
发布时间
阅读量:
阅读量
二维平面上有一只海龟,一开始,海龟面向X轴正方向,位于坐标原点 (0,0)。接下来,海龟接受一连串命令,每个命令可以用一个大写字母表示:
R表示海龟沿顺时针旋转90度;L表示海龟沿逆时针旋转90度;F表示海龟沿当前方向前进一个单元;B表示海龟沿当前方向后退一个单元。
请求出结束时,海龟的位置坐标。
输入格式
- 单个字符串:表示海龟的移动指令
输出格式
- 两个整数:表示海龟的坐标
数据范围
- 字符数量不超过 100000100000
样例数据
输入:
FFF
输出:
3 0
说明:
(0,0)->(1,0)->(2,0)->(3,0)
输入:
LFF
输出:
0 2
说明:
(0,0)->(0,0)->(0,1)->(0,2)
输入:
FBLR
输出:
0 0
详见代码:
#include <bits/stdc++.h>
using namespace std;
string a;
int fx[] = {1, 0, -1, 0};
int fy[] = {0, -1, 0, 1};
int main()
{
cin >> a;
int f = 0;
int x = 0;
int y = 0;
int len;
len = a.length();
for (int i = 0; i < len; i++)
{
if (a[i] == 'R')
{
f++;
f %= 4;
}
else if (a[i] == 'L')
{
f--;
if (f < 0) f += 4;
}
else if (a[i] == 'F')
{
x += fx[f];
y += fy[f];
}
else if (a[i] == 'B')
{
x -= fx[f];
y
全部评论 (0)
还没有任何评论哟~
