Problem
這是很好玩的題目,國中有教怎麼把循環小數變成最簡分數。
如果不是循環小數,當然也可以變成最簡分數。
Source Code
接下來是細節,讀取 I/O。
2 0.318 1 0.3 2 0.09 6 0.714285 -1
這個很容易使用 double / float 去存 0.318 小數部份,
但如果使用 C++ native double / float data type,
又很容易產生本質上的誤差,乾脆把 0.318 當成字串處理還比較直覺。
((Java BigDecimal 就是採用這種處理方式))
除非逼不得已,盡量少用 double / float,
如果吃到 WA,還得慢慢嘗試把答案補上 1e-7 類似這種魔術數字。
沒有留言:
張貼留言