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

题目描述

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
相关推荐
a东方青10 小时前
[蓝桥杯 2023 国 B] AB 路线 (BFS)
c++·算法·职场和发展·蓝桥杯·宽度优先
独行soc14 小时前
2025年渗透测试面试题总结-字节跳动[实习]安全研发员(题目+回答)
linux·科技·安全·面试·职场和发展·渗透测试
潘小磊17 小时前
高频面试之12 HBase
面试·职场和发展·hbase
咚咚轩19 小时前
蓝桥杯第十届国B 求值
蓝桥杯
真实的菜1 天前
面试高频问题
面试·职场和发展·linq
·云扬·1 天前
【PmHub面试篇】集成 Sentinel+OpenFeign实现网关流量控制与服务降级相关面试题解答
面试·职场和发展·sentinel
潘小磊2 天前
高频面试之5Kafka
面试·职场和发展