LQ0130 螺旋折线数学规律

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0130 螺旋折线数学规律相关的知识,希望对你有一定的参考价值。

题目来源:蓝桥杯2018初赛 C++ B组G题

题目描述
如图所示的螺旋折线经过平面上所有整点恰好一次。
对于整点(X, Y),我们定义它到原点的距离dis(X, Y)是从原点到(X, Y)的螺旋折线段的长度。
例如dis(0, 1)=3, dis(-2, -1)=9
给出整点坐标(X, Y),你能计算出dis(X, Y)吗?

输入格式
X和Y,数据在int范围以内。
输出格式
输出dis(X, Y)

输入样例
0 1

输出样例
3

问题分析
(略)

AC的C语言程序如下:

/* LQ0130 螺旋折线 */

#include <stdio.h>
#include <stdlib.h>

#define MAX(a, b) ((a) > (b) ? (a) : (b))
typedef long long LL;

int main()

    int x, y;
    scanf("%d%d", &x, &y);

    LL d;
    LL m = MAX(abs(x), abs(y));
    if (y == -m)
        d = -(m - x);
    else if (x == m)
        d = m + y;
    else if (y == m)
        d = 2 * m + m - x;
    else if (x == -m)
        d = 4 * m + m - y;

    printf("%lld\\n", 4 * m * m + 2 * m - d);

    return 0;

以上是关于LQ0130 螺旋折线数学规律的主要内容,如果未能解决你的问题,请参考以下文章

螺旋折线

2018年第九届蓝桥杯 - 省赛 - C/C++大学B组 - G.螺旋折线

LQ0081 直线GCD+数学

HDU 2050:折线分割平面(找规律,递推)

螺旋折线的长度计算

P2239螺旋矩阵