擅长:python、mysql、java
<p>你应该先考虑解决这个问题。所以基本上你要做的就是把一个数字分成一个已知组件的分区。这也被称为<a href="http://en.wikipedia.org/wiki/Change-making_problem" rel="nofollow">Change-making problem</a>。您可以为此选择贪心算法,只要可能,该算法始终采用最大的组件大小:</p>
<pre><code>units = [20, 10, 5, 1, 0.5]
def change (number):
counts = {}
for unit in units:
count, number = divmod(number, unit)
counts[unit] = count
return counts
</code></pre>
<p>因此,这将返回一个字典,从每个单元映射到该单元的计数,以获得目标数字。你知道吗</p>
<p>您只需要为原始列表中的每个项调用该函数。你知道吗</p>