藍橋杯 移動距離

2021-10-02 16:17:46 字數 1147 閱讀 6536

x星球居民小區的樓房全是一樣的,並且按矩陣樣式排列。

其樓房的編號為 1,2,3…

當排滿一行時,從下一行相鄰的樓往反方向排號。

比如:當小區排號寬度為 6 時,開始情形如下:

1  2  3  4  5  6

12 11 10 9 8 7

13 14 15 .....

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

輸入格式

輸入共一行,包含三個整數 w,m,n,w 為排號寬度,m,n 為待計算的樓號。

輸出格式

輸出乙個整數,表示 m,n 兩樓間最短移動距離。

資料範圍

1≤w,m,n≤10000,
輸入樣例:

6 8 2
輸出樣例:

4
看到這個就很自然的想起來了二維陣列,建立乙個座標與數字的對映關係;

那我們就按照二維陣列的方法對他進行乙個簡單的轉換

把他看做是從0開始的(就讀入之後讓m-- ,n – 就可);

先來看行:x1 = m / w這樣就是得到行號

列號稍微的麻煩了一點,首先原本的列號是y1 = n % w

但是奇數行是從後往前的。所以加乙個特判,所有的奇數行給他翻轉一下

if(x1 % 2) y1 = w - 1 - y1;

**如下

#include

#include

using

namespace std;

int w, m, n;

intmain()

藍橋杯 移動距離

藍橋杯2015第六屆c語言真題 第8題 移動距離 8 移動距離 x星球居民小區的樓房全是一樣的,並且按矩陣樣式排列。其樓房的編號為1,2,3.當排滿一行時,從下一行相鄰的樓往反方向排號。比如 當小區排號寬度為6時,開始情形如下 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 ...

藍橋杯 移動距離

移動距離 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 兩樓...

閒聊藍橋杯JAVA 移動距離

d 今晚做這一道題 移動距離 x星球居民小區的樓房全是一樣的,並且按矩陣樣式排列。其樓房的編號為1,2,3.當排滿一行時,從下一行相鄰的樓往反方向排號。比如 當小區排號寬度為6時,開始情形如下 12 3456 1211109 871314 15.我們的問題是 已知了兩個樓號m和n,需要求出它們之間的...