基于贪心算法的找零钱系统,给我一个Python代码
时间: 2024-12-12 15:22:28 浏览: 7
基于贪心算法的找零钱系统通常用于处理货币兑换的问题,其中目标是最优地组合最小面额的硬币来满足给定的大额金额。下面是一个简单的Python代码示例,假设我们有5种常见的硬币面额(1元、5角、2角、1角、5分):
```python
def coinChange(coins, amount):
coins.sort(reverse=True) # 先按照面额降序排列
min_coins = [0] + [float('inf')] * amount # 初始化动态规划数组
for i in range(1, amount+1): # 遍历所有金额
for coin in coins:
if coin <= i: # 如果当前面额不超过剩余金额
# 更新最小硬币数
min_coins[i] = min(min_coins[i], min_coins[i - coin] + 1)
return min_coins[amount] if min_coins[amount] != float('inf') else -1 # 返回最优解,若无法找到则返回-1
# 示例用法
coins = [1, 5, 2, 1, 0.5]
amount = 9
result = coinChange(coins, amount)
if result == -1:
print(f"无法找零,需要{amount}元")
else:
print(f"最少需要{result}枚硬币")
阅读全文