可以使用什么算法来确定每个硬币的数量(2,1,0.5,0.2,0.1和0.05)是否需要反映总货币价值(必要时四舍五入到最小的硬币单位)?
较大的硬币应该具有最高优先级。
E.g。
2.55$ = 1x2 + 1x0.5 + 1x0.05
答案 0 :(得分:1)
你想用最高的硬币工作到最低的硬币。
"交还"中有多少2?取2 *那个数字关闭交还,然后计算剩下多少1s"交还"。那么多少0.5秒,依此类推,直到最后。
例如:
Giveback = 8.57
8中的4 * 2欧元硬币。您可以通过将回馈除以2(4.285)然后向下舍入到最接近的整数(4)来找到它。
8.57 - (4 * 2)= 0.57。
0 * 1欧元硬币0.57
0.57中的1 * 0.5个硬币,保持0.07
等等。
我不想给你代码,否则你可以复制/粘贴到你的作业中,但这个逻辑应该会有所帮助。