看板 C_and_CPP 關於我們 聯絡資訊
----------------------------------------------------------------- 當然是有理由的! 如果今天某人搭乘距離是1.850公里 原題目 就你所寫的 ============================================================================ 假定計程車在1.5公里內, 車資都是70元; 超過1.5公里後, 每0.3公里, 加收5元 (不足0.3公里, 仍以0.3公里計) 請輸入搭乘里程數(以公里計)(可精確到小數點第三位,即可精確到公尺)(ex:1.853公里) 求算對應的車資為多少. ============================================================================ 那1.850公里減掉基本運費的里程數(1.5公里)為 1.85-1.5=0.35(公里) 又因為每0.3公里加收五元(不足0.3公里以0.3公里計) 而(0.35/0.3)*5=1.1666666.. . 這裡是 1.1666666個 0.3公里,他確實>=1,因此滿足`0.3公里的條件` 1.16666...*5= 5.83333333(元) 這樣會使得總運費只有70+5.83333333= 75.83333333 捨去小數得到的只是75元 根本就嚴重計算錯誤 本來就應該是75.833了不是? 正確算法應該是遇到 0.35/0.3=1.1666666...小數點後面有小數時 就要無條件進位讓1.1666666....變成2 原題目你所po的部份沒有顯示這玩意啊,你應該只是為了反駁而寫這個解釋吧 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.114.2
VictorTom:其實他有寫到模擬計程車車車費計算這件事.... 09/15 21:55
VictorTom:不過他說的計算錯誤是有語病, 數學上這樣計算是正確的, 09/15 21:56
VictorTom:只是這樣的算法沒有meet題目的要求; 所以他需要的計算 09/15 21:57
pttfly:s大似乎沒看清楚題目? 只是原po程式中的算式與邏輯寫錯罷了 09/15 21:57
VictorTom:是每次+5一階~~梯型式的小數進位法. 09/15 21:57
VictorTom:話說pttfly在原文推的那件事更值得注意, t的init這個XD 09/15 21:59
LPH66:那個其實是新手常見錯誤 09/15 22:15
LPH66:誤以為 C 是像 excel 一樣可以先給公式然後自動計算 09/15 22:15
LPH66:然後就算他有正確求出 t 來 個人以為那個 == 還是很危險... 09/15 22:16
VictorTom:科科~~終於有人提到floating point的 == compare了XD 09/15 22:23
sunneo:歐 原來不足0.3以0.3計的意思是這樣啊 09/15 22:41
sunneo:那我這篇就變成來亂的了XDrz ... 09/15 22:42