標題:移動距離

標題:移動距離

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

請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入…” 的多余內容。

所有代碼放在同一個源文件中,調試通過后,拷貝提交該源碼。

注意: main函數需要返回0
注意: 只使用ANSI C/ANSI C++ 標準,不要調用依賴于編譯環境或操作系統的特殊函數。
注意: 所有依賴的函數必須明確地在源文件中 #include , 不能通過工程設置而省略常用頭文件。

提交時,注意選擇所期望的編譯器類型。

思路分析:

參考博客:https://blog.csdn.net/qq_34594236/article/details/53257895
首先,這道題的思路就是將輸入倆個房子的所在的行列給求出來即可,由于不可以斜著來,只能橫縱,故,只要將倆房子的行列求出來即可。
當一般情況,也就是不拐彎的時候:

1   2   3   4   5   6	   問隨機一個數求它所在行列如何求? 例如求15所在行、列
7   8   9   10  11  12     行:(該數-1)/一行有多少個數 + 1;
13  14  `15`  16  17  18        帶入公式:(15-1)/6 + 1=3
19  20  21  22  24  25	   列:(該數%一行有多少個數);
......				     		帶入公式:(15%6)=3
即15這個數所在行列為(3,3)

以上是不拐彎的情況下,其實拐彎的情況只是在偶數行才拐彎,只需要判斷該數是否是出于偶數行,若是則進行特殊處理即可。

代碼如下:

#include<iostream>
#include<cmath>using namespace std;
void beyond(int w,int a,int &x,int &y);
int main(){int w,m,n,x1,y1,x2,y2;cin>>w>>m>>n;beyond(w,m,x1,y1);beyond(w,n,x2,y2);cout << abs(x1-x2) + abs(y1-y2) << endl;return 0;
}void beyond(int w,int a,int &x,int &y){//引用,最后將x、y給返回 x=(a-1)/w + 1;//獲取該房子所在行,行數已經確定不會再變了 y=a%w;//獲取正常順序時(不拐彎的時候)的房子所在列;由于列的奇偶不同,其排序也不同,所以列需要再次判斷 /*1  2  3  4  56  7  8  9  1011 12 13 14 15.....*/if(y==0)y=w;//也就是說,該列可以被整除,即,在最兩邊,至于是最左邊還是最右邊由行數所決定if(x%2==0){//該房子所在行,為偶數行,即,是逆序排序 y=w-y+1;}//cout<<x<<" "<<y<<endl; 	
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379517.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379517.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379517.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ISAPI Rewrite 實現簡單url重寫、二級域名重寫

實現步驟&#xff1a; 第一步&#xff1a;下載ISAPI_Rewrite.rar&#xff0c;將Rewrite文件夾和httpd.ini直接放在項目根目錄下面。 第二步&#xff1a;IIS配置&#xff0c;篩選Rewrite文件夾里面的Rewrite.dll文件&#xff0c;如圖&#xff1a; 第三步&#xff1a;在httpd.ini…

用戶登錄

用戶登錄 代碼namespace 用戶登錄 {public partial class Form1 : Form{public Form1(){InitializeComponent();}bool b1, b2, b3, b4, b5, b6;private void button1_Click(object sender, EventArgs e){try{if (b1 && b2 && b3 && b4 && b5 &…

進程上下文和中斷上下文

文章目錄進程的preempt_count變量thread_infopreempt_counthardirq相關softirq相關上下文原文鏈接&#xff1a; https://zhuanlan.zhihu.com/p/88883239進程的preempt_count變量 thread_info 在內核中&#xff0c;上下文的設置和判斷接口可以參考 include/linux/preempt.h 文…

標題:湊算式

標題&#xff1a;湊算式 這個算式中AI代表19的數字&#xff0c;不同的字母代表不同的數字。 比如&#xff1a; 68/3952/714 就是一種解法&#xff0c; 53/1972/486 是另一種解法。 這個算式一共有多少種解法&#xff1f; 注意&#xff1a;你提交應該是個整數&#xff0c;不要…

匯編中imul_JavaScript中帶有示例的Math.imul()方法

匯編中imulJavaScript | Math.imul()方法 (JavaScript | Math.imul() Method) Math.imul() is a function in math library of JavaScript that is used to the 32-bit multiplication of the two values passed to it. It uses C-like semantics to find the multiplication. …

AFTER觸發器與INSTEAD OF觸發器的區別

INSTEAD OF 觸發器用來代替通常的觸發動作&#xff0c;即當對表進行INSERT、UPDATE 或 DELETE 操作時&#xff0c;系統不是直接對表執行這些操作&#xff0c;而是把操作內容交給觸發器&#xff0c;讓觸發器檢查所進行的操作是否正確。如正確才進行相應的操作。因此&#xff0c;…

Linux內存地址管理

文章目錄系統內存布局內核地址的低端和高端內存概念低端內存高端內存地址轉換和MMULinux中的四級分頁模型虛擬地址字段頁表處理將虛擬地址轉換物理地址Linux系統中的每個內存地址都是虛擬的&#xff0c;它們不直接指向任何物理內存地址。每當訪問內存位置時&#xff0c;可以執行…

錄制caf 轉 mp3

編譯需要使用的 lame庫http://www.cocoachina.com/bbs/read.php?tid108237參考的文章http://blog.csdn.net/ysy441088327/article/details/7392842說起來&#xff0c;我一直在找一個音頻轉換成mp3的方法。一年前&#xff0c;我成功編譯出了一個lame for armv7的庫。苦于不會使…

杭電2012-素數判定(C)

Problem Description 對于表達式n^2n41&#xff0c;當n在&#xff08;x,y&#xff09;范圍內取整數值時&#xff08;包括x,y&#xff09;(-39<x<y<50)&#xff0c;判定該表達式的值是否都為素數。 Input 輸入數據有多組&#xff0c;每組占一行&#xff0c;由兩個整數…

math.ceil帶小數點_JavaScript中帶有示例的Math.ceil()方法

math.ceil帶小數點JavaScript | Math.ceil()方法 (JavaScript | Math.ceil() Method) Math.ceil() is a function in math library of JavaScript that is used to round up the number passed to the function. The method will return the nearest integer value indeed is g…

開發記要 詭異的變量

告別繁體文盲,從寫blog開始 Variable命名很重要,有多重要,看看.net和java的加密就知道, 都是把variable改到一塌糊塗,你想看看都沒門. 但是這幾天看遺留系統的代碼,真是大開眼界。 我一直以為別人寫a,b,c,d這些單字節variable已經很過分。直到我看到以下這幾個&#xff0…

排序算法---快速排序、堆排序、冒泡排序

排序算法1 快速排序代碼實現stdlib庫快排2 堆排序堆排序的基本思想如何構造一個大頂堆排序3 冒泡排序1 快速排序 文章原地址&#xff1a;https://blog.csdn.net/morewindows/article/details/6684558 快速排序的平均時間復雜度是0(NlogN)&#xff0c;它采用了一種分治的策略&a…

CSS Hack 匯總快查

*:lang(zh) select {font:12px !important;} /*FF的專用*/ select:empty {font:12px !important;} /*safari可見*/ 這里select是選擇符&#xff0c;根據情況更換。第二句是MAC上safari瀏覽器獨有的。 僅IE7識別 *html {…} 當面臨需要只針對IE7做樣式的時候就可以采用這個HACK…

杭電2013-蟠桃記(C++)

Problem Description 喜歡西游記的同學肯定都知道悟空偷吃蟠桃的故事&#xff0c;你們一定都覺得這猴子太鬧騰了&#xff0c;其實你們是有所不知&#xff1a;悟空是在研究一個數學問題&#xff01; 什么問題&#xff1f;他研究的問題是蟠桃一共有多少個&#xff01; 不過&#…

c#中重載單目運算符-_C#程序重載二進制運算符(-,*,/)

c#中重載單目運算符-Here, we will design overloaded methods for binary operators: minus, multiply and divide. In the below program, we will create a Calculator class with data member val. 在這里&#xff0c;我們將為二進制運算符設計重載方法&#xff1a;減&…

項目總結:華南師范大學校園開發教育android客戶端總結

忽略之前小打小鬧&#xff0c;這個項目算是我的第一個項目--SCNU的網絡公選課的android版本的客戶端。項目是從5月中旬開始的&#xff0c;中間經歷了幾個星期的復習考試時間&#xff0c;到現在可以說是完工了吧&#xff08;或許還有寫細節要修改&#xff09;。這個項目帶給我蠻…

火鳥字幕合并器

火鳥字幕合并器-區塊獨立勾選-保存。漢王 PDF OCR轉載于:https://www.cnblogs.com/hnytwn/archive/2009/10/31/1593395.html

Linux系統編程---守護進程

1 守護進程的概述 Daemon&#xff08;守護進程&#xff09;是運行在后臺的一種特殊進程。它獨立于控制終端并且周期性地執行某種任務或等待處理某些發生的事件。它不需要用戶輸入就能運行而且提供某種服務&#xff0c;不是對整個系統就是對某個用戶程序提供服務。Linux系統的大…

c ++明明的隨機數_從列表C ++程序中隨機建議電影

c 明明的隨機數Problem statement: 問題陳述&#xff1a; Write an application code that will suggest movies from a list randomly and there wont be any repeat while suggesting the movies. That means the same movie wont be suggested twice though it will be don…

郵箱服務器

一&#xff0e;郵箱服務器的基本概念 郵件的客戶端&#xff1a;可以只安裝在電腦上&#xff08;C/S&#xff09;的也可以是網頁形式&#xff08;B/S&#xff09;的 郵件服務器&#xff1a;起到郵件的接受與推送的作用 郵件發送的協議&#xff1a; 協議&#xff1a;就是數據傳輸…