【发布时间】:2015-11-18 11:21:32
【问题描述】:
我在学校研究这个问题,我写了我认为正确的函数(我们需要使用没有循环的递归)
def subset_sum(numbers, target):
'''
numbers - a list of positive integers
target - a non-negative integer
returns True if the list 'numbers' has a sub-list with sum 'target',
False otherwise.
'''
# Your code for question #4 starts here
if sum(numbers[1:]) == target or target == 0:
return True
if sum(numbers[1:]) == (target - numbers[0]):
return True
if len(numbers) == 1 and numbers[0] == target:
return True
if len(numbers) == 1 and numbers[0] != target:
return False
else:
subset_sum(numbers[1:], target)
对于某些输入,获得正确的输出,例如 subset_sum([4,4,4], 12) 或 subset_sum([4,4,4], 8),但对于 subset_sum([4,4,4], 4),我没有输出。
有人可以看看并告诉我这里有什么问题吗? 当它没有给出任何输出时,没有错误,只是空白。
【问题讨论】:
-
我不确定您提出的解决方案,即使很快进行了更正,也能满足您的要求。
-
@quamrana 它没有......但我不明白为什么......
标签: python list function recursion