回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我在做硬币兑换的问题。我已经解决了这个问题,它会打印出我需要多少硬币来做最少的更改,但是我如何更改我的程序以便它也能打印这些硬币??在</p>
<p>以下是I/O示例:</p>
<pre><code>input: coin_change(48, [1, 5, 10, 25, 50])
output: [6, [25, 10, 10, 1, 1, 1]]
input: coin_change(48, [1, 7, 24, 42])
output: [2, [24, 24]]
</code></pre>
<p>目前我的代码只返回6。在</p>
<p>顺便说一句,这只能用递归来完成。不允许循环。在</p>
<p>代码:</p>
^{pr2}$
<p>下面的代码是我尝试过的,但是对于第二个输入它不起作用</p>
<pre><code>def giveChange(C, V, res = None):
res=[] if res is None else res
if len(V)==0:
return len(res),res
maxx=max(V)
print maxx
V.remove(maxx)
ans=C//maxx
if ans==0 and maxx<C :
print maxx
res +=[maxx]*ans
return len(res),res
else:
res += [maxx]*ans
return giveChange(C % maxx,V,res)
</code></pre>