我從學校這個問題的工作,我寫我認爲功能是正確的(我們需要使用遞歸無環路)如何調試這個遞歸函數蟒蛇
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
@quamrana它沒有......但我不明白爲什麼.. – Beginner