蓝桥杯官网练习题(移动距离)

题目描述

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 2 8

输出

4

示例2
输入

4 7 20

输出

5

运行限制

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int w=scan.nextInt();
        int m=scan.nextInt();
        int n=scan.nextInt();
        int mhang=0;
        int nhang=0;
        int mlie=0;
        int nlie=0;
        int ans=0;
        if(m%w==0){
            mhang=m/w;
        }
        else{
            mhang=(m/w)+1;
        }
        if(n%w==0){
            nhang=n/w;
        }
        else{
            nhang=(n/w)+1;
        }
        if(mhang%2==0){
            mlie=w*mhang-m+1;
        }
        else{
            mlie=m-(w*(mhang-1));
        }
        if(nhang%2==0){
            nlie=w*nhang-n+1;
        }
        else{
            nlie=n-(w*(nhang-1));
        }
        ans=Math.abs(mhang-nhang)+Math.abs(mlie-nlie);
        System.out.println(ans);
        scan.close();
    }
}
    • 最大运行时间:1s
    • 最大运行内存: 256M
相关推荐
程序员敲代码吗41 分钟前
面试中sessionStorage问题引发深度探讨
面试·职场和发展
橘颂TA1 小时前
【测试】高效浏览器操作:基础功能与优化设置大全
c++·功能测试·职场和发展·测试·web测试
历程里程碑1 小时前
普通数组----合并区间
java·数据结构·python·算法·leetcode·职场和发展·tornado
iAkuya2 小时前
(leetcode)力扣100 61分割回文串(回溯,动归)
算法·leetcode·职场和发展
VT.馒头2 小时前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript
源代码•宸2 小时前
大厂技术岗面试之谈薪资
经验分享·后端·面试·职场和发展·golang·大厂·职级水平的薪资
马猴烧酒.3 小时前
【面试八股|JVM虚拟机】JVM虚拟机常考面试题详解
jvm·面试·职场和发展
iAkuya4 小时前
(leetcode)力扣100 62N皇后问题 (普通回溯(使用set存储),位运算回溯)
算法·leetcode·职场和发展
HY小宝F10 小时前
职场沟通的深层智慧:从对抗到协作的自我修炼
职场和发展