当前位置:首页 > 编程笔记 > 正文
已解决

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

来自网友在路上 176876提问 提问时间:2023-11-06 05:35:43阅读次数: 76

最佳答案 问答题库768位专家为你答疑解惑

题目描述

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

运行限制

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
查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"蓝桥杯官网练习题(移动距离)":http://eshow365.cn/6-33370-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!