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;

}