創作內容

1 GP

ZeroJudge - b877: 我是電視迷 解題心得

作者:Not In My Back Yard│2019-09-18 23:38:05│贊助:2│人氣:44
題目連結:


題目大意:
頻道號碼有 0 ~ 99 共 100 個頻道。而遙控器只剩下「下一台」的按鈕可以使用。

現給定兩整數 a 、 b ,依序代表現在在地頻道以及要轉過去的頻道。試問要按幾次「下一台」的按鈕才能從 a 轉到 b 。

註:能不以 if 判斷式(只用算術運算子)達成目標為佳。



範例輸入:
5 10


範例輸出:
5


解題思維:
說到這題的解答(其中一種)就不得不提一下餘數的特性(更精確的說,是定義):
餘數不是僅限於正數而已,例如模 5 下,-3 、 2 是同餘的、 -8 也跟 -3 、 2 同餘。

因為取餘在數線上的意義即為:將所有整數(不限正整數)映射到數字 0 ~ n - 1 這個群裡(模 n 的時候)。

然後,剛好本題的要求剛好可以對應於模 100 下的加減法。當 a ≦ b 時,答案自然是 b - a ;而 a > b 時,所求可寫為 b - a + 100 。

因此,我們的解答可寫作(b - a + 100) mod 100 。 a ≦ b 時,後面的 + 100 會被取餘抵銷掉;就算 a > b 時, b - a + 100 將會是正數,模 100 後即無影響。即達成了不用 if 只用算術運算子的要求。

此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4533559
All rights reserved. 版權所有,保留一切權利

相關創作

同標籤作品搜尋:程式題目解題心得

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★inversion 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:ZeroJudge - ... 後一篇:ZeroJudge - ...

追蹤私訊

作品資料夾

airsky00大家
小屋的黑暗小說更新囉~~歡迎大家來坐坐,喝杯茶吧看更多我要大聲說昨天23:05


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】