我现在正试图写一个递归函数,它接受两个整数参数,并且必须取从第一个到最后一个整数的所有值,连续地将列表拆分为两半,以便将每一个边相乘,然后求出所有整数值的乘积。我目前打印出以下代码:
def multiply(n, m):
lis = range(n, m)
half = len(lis)//2
leftSide = lis[:half]
rightSide = lis[half+1:]
if n == 0 or m == 0:
return 0
elif len(lis) == 0:
return 0
elif len(lis) == 1:
return lis[0]
return multiply(leftSide) * multiply(rightSide)
但是当我运行代码时,我得到了以下错误:
TypeError: multiply() missing 1 required positional argument: 'm'
如有任何意见或帮助,我们将不胜感激。在
试试这个。你不必用这种方法来创建额外的内存。在
multiply(n,m)接受两个参数n和m,但是在递归(在multiply函数中返回)步骤中,您将向乘法函数传递一个列表。 你需要这样的东西:
乘以([i代表范围内的i(n,m+1)])
相关问题 更多 >
编程相关推荐