|
Post by huangno1 on Dec 27, 2016 20:53:59 GMT -8
程式說明
我是個超級電視迷,但是我不喜歡固定看一個頻道,我經常在不同頻道間轉來轉去。
我的狗咬壞了我的?控器,現在數字鍵都不能用了,只剩兩個按鈕可以換頻道,一個往上切一個頻道 (△ 按鈕),一個往下切一個頻道 (▽ 按鈕)。這樣真的很煩,因為如果我要從頻道 3 換到頻道 9 我得按 6 次 △ 按鈕。
我的電視有 100 個頻道,號碼為 0 到 99。它們是循環的,也就是從 99 台再按一下 △ 就會回到第 0 台。同理,從第 0 台按一下 ▽ 就會回到 99 台。
幫我寫個程式,讓我輸入現在正在看的頻道和我要切過去的頻道,它便告訴我最少需要按幾次按鈕。
Input
輸入含有多筆測資 (最多 200 筆)。
每筆測資含有兩個整數 a 與 b 於一行。a 是我現在看的頻道,而 b 則是我要切過去的頻道 (0 <= a, b <= 99)。
最後一行有兩個 -1,代表輸入結束。
Output
對於每筆測資,輸出一個整數於一行 — 也就是我最少要按幾次按鈕才能切到新頻道。(記住,我只有 △ 和 ▽ 兩個按鈕可用)。
Sample Input
3 9
0 99
12 27
-1 -1
Sample Output
6
1
15
***以下為參考程式碼***(注意!!複製貼上此程式碼,將對你沒好處)
#include <stdio.h>
int main() {
const int INPUT_END = -1 ;
int current_see = 0 , want_to_see = 0 ;
scanf ( " %d %d" , ¤t_see , &want_to_see ) ;
while ( current_see != INPUT_END && want_to_see != INPUT_END )
{
int ans1 , ans2 ;
if ( current_see < want_to_see )
{
ans1 = want_to_see - current_see ;
ans2 = current_see + ( 100 - want_to_see ) ;
}
else if ( want_to_see < current_see )
{
ans1 = current_see - want_to_see ;
ans2 = want_to_see + ( 100 - current_see ) ;
}
if ( ans1 < ans2 )
printf ( "%d\n" , ans1 ) ;
else
printf ( "%d\n" , ans2 ) ;
current_see = 0 ;
want_to_see = 0 ;
scanf ( " %d %d" , ¤t_see , &want_to_see ) ;
}
return 0 ;
}
|
|