贪心算法经典问题:硬币找零

本文探讨了一个使用贪心算法解决的硬币找零问题,通过寻找消费者支付和商店找零硬币数量的最小组合,确定支付商品价值的最少数目。贪心策略是优先使用最大面值的硬币,以达到使用最少硬币的目标。文章还证明了该贪心算法具有贪心选择性和最优子结构性质,并提供了问题的代码实现。
摘要由CSDN通过智能技术生成

这是一个用最少硬币支付指定额度的问题。

一、问题描述:如下图图一,设有6种不同面值的硬币,各硬币的面值分别为5分、1角、2角、5角、1元、2元。现要用这些面值的硬币来购物和找钱。购物时规定了可以使用的各种面值的硬币个数。

图一,这里表示六种不同币值的硬币
假定商店里各面值的硬币足够多,顾客也可用多种方式支付,在一次购物中希望使用最少硬币个数。举一个例子,一名顾客需要付款,0.55元,但她身上没有5角的硬币,如下图图二所示,展示了一种情况,顾客用0.2+0.2+0.1+0.05共4枚硬币来付款。

图二,方案一
下图图三展示了另一种情况,顾客支付1元,商店找回4角5分。这个情况同样需要4枚硬币。

图三,方案二
下图图四展示了最佳情况。如果顾客付出1.05元(1枚1元和1枚5分),商店找回5角,整个过程只需要3枚硬币。这个方案用的硬币个数最少。

图四,最佳方案!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值