https://www.lanqiao.cn/courses/2786/learning/?id=67808题目链接
// 9届蓝桥螺旋折线.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//思想:通过遍历走过的路径的方式找到目标点,遍历的同时记录下线长。
#include
using namespace std;
int dis(int x, int y)
{
int flagx = -1, flagy = 1, a = 0, b = 0, sum = 0, i, j = 1, k;//sum用于记录线长,j用于表示走的步数
while (1)
{
for (i = 1; i <= j; i++)//x向flagx方向走j步(flagx为-1表示往负方向走,为1表示往正方向在,下面y也一样)
{
if (a == x && b == y)//遍历到了想要的位置就退出
return sum;
else
{
a = a + flagx;
sum++;
}
}
for (i = 1; i <= j; i++)//y走
{
if (a == x && b == y)
return sum;
else
{
b = b + flagy;
sum++;
}
}
flagx = -flagx;//换方向
flagy = -flagy;
j++;//走的步数加1
}
}
int main()
{
int x, y;
cin >> x >> y;
int sum = dis(x, y);
cout << sum;
}
京公网安备 11010502036488号