藍(lán)橋杯:移動距離--Python解法

問題描述:

X星球居民小區(qū)的樓房全是一樣的,并且按矩陣樣式排列。其樓房的編號為1,2,3...
當(dāng)排滿一行時,從下一行相鄰的樓往反方向排號。
比如:當(dāng)小區(qū)排號寬度為6時,開始情形如下:

1 2 3 4 5 6
12 11 10 9 8 7
13 14 15 .....

我們的問題是:已知了兩個樓號m和n,需要求出它們之間的最短移動距離(不能斜線方向移動)

輸入格式:

輸入為3個整數(shù)w m n,空格分開,都在1到10000范圍內(nèi)
w為排號寬度,m,n為待計(jì)算的樓號。

輸出格式:

要求輸出一個整數(shù),表示m n 兩樓間最短移動距離。

例如:

用戶輸入:

6 8 2

程序應(yīng)該輸出:

4

再例如:

用戶輸入:

4 7 20

程序應(yīng)該輸出:

5

資源約定:

峰值內(nèi)存消耗 < 256M
CPU消耗 < 1000ms

請嚴(yán)格按要求輸出,不要畫蛇添足地打印類似:“請您輸入...” 的多余內(nèi)容。

代碼:

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()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 題目 X星球居民小區(qū)的樓房全是一樣的,并且按矩陣樣式排列。其樓房的編號為1,2,3...當(dāng)排滿一行時,從下一行相鄰...
    JacobKong_Dev閱讀 1,848評論 0 0
  • 題目1:獎券數(shù)目 有些人很迷信數(shù)字,比如帶“4”的數(shù)字,認(rèn)為和“死”諧音,就覺得不吉利。雖然這些說法純屬無稽之談,...
    你要好好學(xué)習(xí)呀閱讀 1,975評論 0 26
  • 在C語言中,五種基本數(shù)據(jù)類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 4,035評論 0 2
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,712評論 0 5
  • 什么叫美?嚴(yán)格的說沒有統(tǒng)一的答案。婉約是美,豪放也是美;精致是美,粗獷也是美;完整是美,殘缺也是美;寫實(shí)是美,寫意...
    f7608d9f2b91閱讀 646評論 0 1

友情鏈接更多精彩內(nèi)容