移动距离

题目描述

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 两楼间最短移动距离。

例如:

用户输入:

6 8 2

则,程序应该输出:

4

再例如:

用户输入:

4 7 20

则,程序应该输出:

5

资源约定:

峰值内存消耗(含虚拟机) < 256M

CPU消耗 < 1000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意:不要使用package语句。不要使用jdk1.7及以上版本的特性。

注意:主类的名字必须是:Main,否则按无效代码处理。

    public static void main(String[] args) {
Scanner input =new Scanner(System.in);
int length = input.nextInt();
int one = input.nextInt();
int two = input.nextInt(); int ox=one/length;
int oy=one%length;
int tx=two/length;
int ty=two%length; if(one%length==0){
oy=length;
}else{
ox=ox+1;
}
if(two%length==0){
ty=length;
}else{
tx=tx+1;
}
if(ox%2==0){
oy=length-oy+1;
}
if(tx%2==0){
ty=length-ty+1;
}
System.out.println(Math.abs(ox-tx)+Math.abs(oy-ty));
}

最新文章

  1. ASP.NET Web API 过滤器创建、执行过程(二)
  2. awk 统计出现次数--转
  3. linux忘记mysql密码找回方法
  4. ArrayList、HashTable、List、Dictionary的演化及如何选择使用
  5. javascript中怎样验证密码是否含有特殊符号、数字、大小写字母,长度是否大于6小于12
  6. VirtualBox安装Fedora20
  7. 161207、高并发:java.util.concurrent.Semaphore实现字符串池及其常用方法介绍
  8. 查询SQL中字符串里有多少个逗号
  9. mac 下nginx加入开机启动
  10. 开机自动挂载 VHD 的方法
  11. rtmp流媒体搭建的所需安装包
  12. Java的虚方法
  13. Codeforces 461D. Appleman and Complicated Task 构造,计数
  14. Linux并发与同步专题
  15. FortiGate下用户访问特定网址不通
  16. c# 封装 Request操作类
  17. &lt;操作系统&gt;进程和线程
  18. C# Activator和new的区别
  19. Leetcode题库——40.组合总和II
  20. 《Linux系统编程(第2版)》

热门文章

  1. JVM入门--类加载器
  2. Mockito如何mock一条链式调用
  3. hdu5687 字典树
  4. Jmeter(二) - 从入门到精通 - 创建测试计划(Test Plan)(详解教程)
  5. 客服端负载均衡:Spring Cloud Ribbon
  6. 记一次 React Native 大版本升级过程——从0.40到0.59
  7. python之robotframework+pycharm测试框架
  8. [Android应用开发] 05.广播和服务
  9. MRCTF 2020 WP
  10. 使用 fileupload 组件完成文件的上传应用