美文网首页
每周一题 楼号m和n之间的最短移动距离

每周一题 楼号m和n之间的最短移动距离

作者: 小柳学渣 | 来源:发表于2019-01-26 14:15 被阅读0次

    [问题描述]
    X星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为1,2,3…
    当排满一行时,从下一行相邻的楼往反方向排号。

    比如:当小区排号宽度为6时,开始情形如下:
    1 2 3 4 5 6
    12 11 10 9 8 7
    13 14 15 …

    我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)

    输入为3个整数w m n,空格分开,都在1到10000范围内

    要求输出一个整数,表示m n 两楼间最短移动距离。

    [样例输入]
    6 8 2

    [样例输出]
    4

    [样例输入]
    4 7 20

    [样例输出]
    5

    #include <stdio.h>
    int main()
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        if(b>c)
        {
            int t=b;b=c;c=t;
        }
        int y=abs((b-1)/a-(c-1)/a);
        int x=abs((((b-1)%(2*a))<=a?(b%(2*a)):(a-(b-1)%a))-(((c-1)%(2*a))<=a?(c%(2*a)):(a-(c-1)%a)));
        printf("%d",x+y);
        return 0; 
     } 
    /***************************************
    *              小柳学渣 
    *              2019/1/3 
    ***************************************/
    

    相关文章

      网友评论

          本文标题:每周一题 楼号m和n之间的最短移动距离

          本文链接:https://www.haomeiwen.com/subject/jrjijqtx.html