1. 程式人生 > >使用貪心演算法實現硬幣找零問題

使用貪心演算法實現硬幣找零問題

硬幣找錢問題
與網易部落格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