所以我想创建一个递归函数,在使用它或丢失它的意义上起作用,它通过列表使用无限数量的硬币,并计算所需的数量。
假设您有: change(48, [1, 5, 10, 25, 50]) 它将返回 6,因为它将使用 25x1、10x2 和 1x3,总共 6 个硬币。
def change(value, L):
if not L:
return L
if L[-1] > value:
return change(value, L[:-1])
else:
useIt = [L[-1]] + change(value - L[-1], L)
return useIt
这将返回所用硬币的列表,但是如果我返回 len(useIt),则会出现此错误:
类型错误:只能将列表(不是“int”)连接到列表
但是,这将返回正确的值:
print(len(change(48, [1, 5, 10, 25, 50])))
如何在不这样做的情况下返回列表的长度?请不要循环,只有递归,这是考试复习。
白板的微信
相关分类