现有4种零钱分别面值25元,10元,5元,1元。输入一定的货币数值,输出找零钞票张数最小的方案。(可使用穷举法) 【输入形式】一个正整数n, 例如35,代表35元,0<n<100
时间: 2023-12-12 12:03:20 浏览: 183
货币找零计算找给顾客固定钱数的最小货币量
这道题可以使用贪心算法来解决。贪心算法的思路是每次选择当前最优的解决方案,直到找出整个问题的最优解。在这个问题中,我们每次都选取面值最大的零钱,直到找完所有需要找的钱。
具体实现如下:
```python
def change_money(n):
coins = [25, 10, 5, 1] # 面值数组
result = [] # 存储结果的数组
for coin in coins:
while n >= coin:
result.append(coin)
n -= coin
return result
```
我们首先定义了一个面值数组,按照从大到小的顺序存储了零钱的面值。然后定义了一个空数组result,用来存储找零的结果。接下来使用一个循环遍历面值数组中的每一个面值,如果当前面值比剩余需要找零的数值小,则跳过。如果当前面值比剩余需要找零的数值大,则继续循环。如果当前面值比剩余需要找零的数值小,则将当前面值加入到结果数组中,并将需要找零的数值减去当前面值。最后返回结果数组即可。
例如,调用change_money(35)会返回[25, 10],表示找零35元需要一张面值为25元的钞票和一张面值为10元的钞票。
阅读全文