国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

藍橋杯之移動距離

2019-11-11 01:22:27
字體:
來源:轉載
供稿:網友

移動距離 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 , 不能通過工程設置而省略常用頭文件。 提交時,注意選擇所期望的編譯器類型。


對于這道題可以先找到豎直方向的距離,然后尋找水平的距離 代碼如下:

#include<iostream>#include<cmath>using namespace std;int f(int w,int n){ if(n%w==0) { return n/w-1; } return n/w;}int main(){ int w,m,n; cin >> w >> m >> n; int a;//豎直距離 int b;//水平距離 a = abs(f(w,m)-f(w,n)); if(a%2) { b = abs(m%w-(w-(n%w-1))); } else { b = abs(m%w-n%w); } //cout << a<< b << endl; cout << a+b; return 0;}//1 2 3 4//8 7 6 5//9 10 11 12//16 15 14 13//17 18 19 20
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 库车县| 威远县| 珠海市| 固阳县| 鲜城| 博乐市| 东乌| 青海省| 中西区| 新源县| 若尔盖县| 溆浦县| 临江市| 扶风县| 高青县| 通辽市| 丰台区| 盐津县| 栖霞市| 长沙市| 长沙县| 弋阳县| 郎溪县| 东乌珠穆沁旗| 泽州县| 斗六市| 五华县| 额尔古纳市| 漾濞| 景谷| 柳河县| 南开区| 南通市| 光山县| 泰兴市| 团风县| 闻喜县| 山西省| 澄城县| 永昌县| 离岛区|