使用贪心算法实现硬币找零问题

本文介绍了如何利用贪心算法解决硬币找零问题,详细阐述了问题描述、输入输出格式,并提供了算法思路,包括贪心选择性和最优子结构性质的证明。最后,作者提到会在后续日期分享具体代码。
摘要由CSDN通过智能技术生成

硬币找钱问题
与网易博客http://yixiong89921.blog.163.com/blog/static/132537788201137105357406/同步
问题描述

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

假定商店里各面值的硬币有足够多,顾客也可用多种方式支付。在1次购物中希望使用最少硬币个数。例如,1次购物需要付款0.55元,没有5角的硬币,只好用2*20+10+5共4枚硬币来付款。如果付出1元,找回4角5分,同样需要4枚硬币。但是如果付出1.05元(1枚1元和1枚5分),找回5角,只需要3枚硬币。这个方案用的硬币个数最少。

您的任务:对于给定的各种面值的硬币个数和付款金额,计算使用硬币个数最少的交易方案。

输入

有若干行测试数据。每一行有6个整数a5、a4、a3、a2、a1、a0和1个有2位小数的实数money,分别表示5分,1角,2角,5角,1元,2元面值的硬币个数和付款金额,money<=1000。文件以6个0结束(不必处理)。

输出

对每一行测试数据,一行输出最少硬币个数。如果不可能完成交易,则输出“impossible”。

输入样例

2 4 2 2 1 0 0.95

2 4 2 0 1 0 0.55

0 0 0 0 0 0

输出样例

2

3

具体代码稍后放出。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值