美文网首页
移动距离问题

移动距离问题

作者: Cytosine | 来源:发表于2017-06-22 23:12 被阅读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 范围内。
w 为排号宽度,m,n 为待计算的楼号
输出描述
输出一个整数,表示 m n 两楼间最短移动距离。

输入样例 1:

6 8 2

输出样例 1:

4

输入样例 2:

4 7 20

输出样例 2:

5

输入样例 3:

5 1 35

输出样例 3:

10

完整代码

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

int main()
{
    int w,m,n,result=0;
    scanf("%d %d %d",&w,&m,&n);

    int row[2],col[2];

    if(m%w==0){
        row[0]=m/w-1;
    }else{
        row[0]=m/w;
    }
    if(row[0]%2==0){
        col[0]=(row[0]+1)*w-m;
    }else{
        col[0]=m-row[0]*w-1;
    }

    if(n%w==0){
        row[1]=n/w-1;
    }else{
        row[1]=n/w;
    }
    if(row[1]%2==0){
        col[1]=(row[1]+1)*w-n;
    }else{
        col[1]=n-row[1]*w-1;
    }

    result=abs(row[0]-row[1])+abs(col[0]-col[1]);
    printf("%d",result);

    return 0;
}

相关文章

  • 移动距离问题

    题目 X 星球居民小区的楼房全是一样的,并且按矩阵样式排列。其楼房的编号为 1,2,3... 当排满一行时,从下一...

  • 移动动画的封装之一:移动不同距离的问题

    移动动画的封装之一:移动不同距离的问题

  • 放大镜

    mask移动的距离/mask可移动的最大距离 = bigImg移动的距离/bigImg可移动的最大距离 对于滚动条...

  • ARkit -- 平移

    ARKit -- 矩阵变换 代码测试一 下面我们添加一个动作手势.获取手势的移动距离,把这个移动距离作为节点的移动...

  • pcb更改栅格大小2021-04-28

    快捷键G,更改栅格的大小,栅格越大,单位移动距离越大,栅格越小,单位移动距离越小

  • 【Android】仿QQ空间,快手点击item移动到软键盘上面

    解决软键盘遮挡问题 scrollview移动距离=点击item的坐标-弹出软键盘过后的edittext的坐标+点击...

  • ViewConfiguration.getScaledTouch

    getScaledTouchSlop是一个距离,表示滑动的时候,手的移动要大于这个距离才开始移动控件。如果小于这个...

  • web中js的运用

    窗口滚动 用途:滑动web页面 参数说明 x:屏幕向右移动的距离 y:屏幕向下移动的距离 移除属性 用途:以下方法...

  • 鼠标指针实现拖拽

    实现思路: 移动对象绝对定位 计算移动距离 移动对象跟随鼠标 添加 JS 监听按下松开 需要补充的知识:docum...

  • QQ粘性布局

    整体思路: 手指移动,按钮跟着移动.按钮跟着手指移动.移动时底部有一个圆, 根据上面的大圆按钮拖动的距离,小圆的半...

网友评论

      本文标题:移动距离问题

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