【发布时间】:2013-11-14 17:40:53
【问题描述】:
我目前正在尝试编写一些代码,给定一个硬币值列表,它将返回所有可能的硬币组合,总和为某个值。这是程序应该如何运行的示例:
>>> find_changes(4,[1,2,3])
[[1, 1, 1, 1], [2, 1, 1], [1, 2, 1], [3, 1], [1, 1, 2], [2, 2], [1, 3]]
我得到了以下代码模板来填写:
def find_changes(n, coins):
if n < 0:
return []
if n == 0:
return [[]]
all_changes = []
for last_used_coin in coins:
### DELETE THE "pass" LINE AND WRITE YOUR CODE HERE
pass
return all_changes
我尝试在for 循环中使用以下代码:
all_changes.append[last_used_coin]
find_changes(n-last_used_coin,coins)
目前不工作。我做错了什么?
【问题讨论】:
-
它应该做什么?怎么了?家庭作业需要更多的努力......
-
是的,我知道,它应该返回所有可能组合的列表,给我们总和 n,我是 Python 递归的新手,所以.....
-
您应该首先弄清楚您的基本情况是什么,然后弄清楚如何将问题分解为更小的子问题。如果这很难(因为这不是最简单的递归问题),请尝试先解决斐波那契递归之类的问题。
-
@user2928714 -- 欢迎来到 StackOverflow!你被否决的原因是,乍一看,你好像在问一个问题,但没有说明问题是什么,或者你想做什么。我尝试为您解决您帖子中的一些问题,但在未来,请尝试更清楚地提出您的问题,并了解 how to format 您在 StackOverflow 上的帖子。
-
我在斐波那契数列中取得了成功,但在这个问题上没有,...
标签: python list recursion combinations