藍橋杯2015第六屆c語言真題 第8題:移動距離
8、移動距離
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 7 20
則,程式應該輸出:
本來用迴圈寫了好久,後來才發現有簡便的方法
#include #include int main()
//用迴圈做的
#include #include using namespace std;
int a[1010][1010];
int main()
if(a[i][j] == n)
} ++i;
++j;
while(j > 1)
if(a[i][j] == n)
} ++i;
--j;
if(count >= m && count >= n)
break;
}// for(i = 1;i <= 1000;i ++)
// // printf("\n");
// if(i >(max(m,n) / w))
// break;
// }
// printf("m(%d,%d) n(%d,%d)\n",mx,my,nx,ny);
printf("%d\n",abs(mx - nx) + abs(my - ny));
return 0;
}
資源約定:
峰值記憶體消耗 < 256m
cpu消耗 < 1000ms
請嚴格按要求輸出,不要畫蛇添足地列印類似:「請您輸入...」 的多餘內容。
所有**放在同乙個原始檔中,除錯通過後,拷貝提交該原始碼。
注意: main函式需要返回0
注意: 只使用ansic/ansi c++ 標準,不要呼叫依賴於編譯環境或作業系統的特殊函式。
注意: 所有依賴的函式必須明確地在原始檔中 #include , 不能通過工程設定而省略常用標頭檔案。
提交時,注意選擇所期望的編譯器型別。
藍橋杯 移動距離
x星球居民小區的樓房全是一樣的,並且按矩陣樣式排列。其樓房的編號為 1,2,3 當排滿一行時,從下一行相鄰的樓往反方向排號。比如 當小區排號寬度為 6 時,開始情形如下 1 2 3 4 5 6 12 11 10 9 8 7 13 14 15 我們的問題是 已知了兩個樓號 m 和 n,需要求出它們之間...
藍橋杯 移動距離
移動距離 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,需要求出它們之間的...