Press "Enter" to skip to content

[CSAW]Coinslot – 25pt

Description:

#Hope #Change #Obama2008
nc misc.chal.csaw.io 8000
Solution:
連上伺服器後 如下圖
[Misc]Coinslot - 25pt

看來要求是需要根據題目給出的數值 , 算出最少的硬幣組合

在開始了寫了一會之後發現有時候會有1的誤差 , 經調試後發現這是java一個自帶的問題
[Misc]Coinslot - 25pt
1.89+1理應是2.89 , 可是電腦卻給出2.8899999
在查資料後發現 , 原來很多編程語言都有這個問題 , 因為double和float原本就不是一個精通確性的運算
浮點數只是根據cpu架構上的不同虛擬出來的處理單元 , 而且電腦並不能夠直接讀取十進制的數字 , 必先轉為二進制作計算 ,但是有些浮點數是只能取其近似值的 , 所以便會出現誤差 , 例如下圖

[Misc]Coinslot - 25pt

所以我決定將所有數字倍大100 , 便能作整數計算
故得出以下算法
[Misc]Coinslot - 25pt
[Misc]Coinslot - 25pt
自動解了400題 , 終於flag出來了

[Misc]Coinslot - 25pt

flag{started-from-the-bottom-now-my-whole-team-fucking-here}

Comments