在加拿大,一分钱不再流通。现金付款四舍五入至最接近的5美分。
可以通过分割购买来节省金钱。例如,两个$ 1.02的商品的价格为$ 2.04,四舍五入为$ 2.05,但是在单独购买的商品中,每个价格四舍五入为$ 1.00,总计为$ 2.00。但是,当以1.03美元的价格购买两件商品时,最好一次购买。
另一种省钱的方法是,在四舍五入不利的情况下使用信用卡,因为未对信用卡付款进行四舍五入。如果我们要两个1.04美元的商品,则无论我们如何分割购买,总价格将合计为2.10美元。因此,我们应该使用信用卡支付这些物品。
编写一个函数或程序,该函数或程序接受以整数形式(以美分为单位)的商品价格列表,并输出可以通过一系列购买(可以现金或信用方式购买)实现的那些商品的最低总价(以美分)。
最短的代码胜出。
测试用例
[] : 0
[48] : 48
[92, 20] : 110
[47, 56, 45] : 145
[55, 6, 98, 69] : 225
[6, 39, 85, 84, 7] : 218
[95, 14, 28, 49, 41, 39] : 263
[92, 6, 28, 30, 39, 93, 53] : 335
[83, 33, 62, 12, 34, 29, 18, 12] : 273
[23, 46, 54, 69, 64, 73, 58, 92, 26] : 495
[19, 56, 84, 23, 20, 53, 96, 92, 91, 58] : 583
[3, 3, 19, 56, 3, 84, 3, 23, 20, 53, 96, 92, 91, 58, 3, 3] : 598
[2, 3, 4, 4, 4, 4, 4] : 19
s.reduce(:+)
(通常甚至不需要括号,但在您的情况下...)并内联m
额外的2个字符。