美文网首页
蓝桥杯:移动距离--Python解法

蓝桥杯:移动距离--Python解法

作者: 冒泡泡de可乐 | 来源:发表于2019-12-08 19:27 被阅读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 两楼间最短移动距离。

例如:

用户输入:

6 8 2

程序应该输出:

4

再例如:

用户输入:

4 7 20

程序应该输出:

5

资源约定:

峰值内存消耗 < 256M
CPU消耗 < 1000ms

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

代码:

def count_row(w, num):
    return num // w if num % w != 0 else num // w - 1

def count_colum(w, num, r):
    if r % 2 == 0:
        colum = num % w - 1 if num % w != 0 else w - 1
    else:
        colum = w - num % w if num % w != 0 else 0
    return colum

def run():
    w, m, n = (int(i) for i in input().split())

    x1 = count_row(w, m)
    y1 = count_colum(w, m, x1)

    x2 = count_row(w, n)
    y2 = count_colum(w, n, x2)

    print(abs(x1 - x2) + abs(y1 - y2))

run()

相关文章

  • 蓝桥杯:移动距离--Python解法

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

  • 蓝桥杯:字母图像--Python解法

    问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE D...

  • 蓝桥杯:闰年判断--Python解法

    问题描述 给定一个年份,判断这一年是不是闰年。 当以下情况之一满足时,这一年是闰年: 年份是4的倍数而不是100的...

  • 蓝桥杯:阶乘计算--Python解法

    问题描述 输入一个正整数n,输出n!的值。其中n!=123…n。 算法描述 n!可能很大,而计算机能表示的整数范围...

  • 蓝桥杯:数列特征--Python解法

    问题描述 给出n个数,找出这n个数的最大值,最小值,和。 输入格式 第一行为整数n,表示数的个数。 第二行有n个数...

  • 蓝桥杯:查找整数--Python解法

    问题描述 给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。 输入格式 第一行包含一个整数n。 第...

  • 蓝桥杯:回文数--Python解法

    问题描述 1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。 输出格式 按从...

  • 蓝桥杯:压缩变换--Python解法

    问题描述: 小明最近在研究压缩算法。他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。然而,...

  • 蓝桥杯:交换瓶子--Python解法

    问题描述: 有N个瓶子,编号 1 ~ N,放在架子上。比如有5个瓶子:2 1 3 5 4 要求每次拿起2个瓶子,交...

  • 蓝桥杯:饮料换购--Python解法

    问题描述: 乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环...

网友评论

      本文标题:蓝桥杯:移动距离--Python解法

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