如何用Python递归实现数组元素乘积?现有代码报错求修正
递归计算数组元素乘积的代码修正
先看你代码里的几个问题:
- 终止条件错误:当n=0时,空数组的乘积应该是1(乘法的单位元),而不是返回数组本身
- 索引越界:Python数组是0起始索引,当n等于数组长度时,
arr[n]会超出范围,应该取arr[n-1] - 函数名拼写错误:
multyply应该是multiply - 递归传参错误:递归调用时需要传入原数组和
n-1,而不是传入单个元素arr[n-1]
修正后的代码:
def multiply(arr, n): if n == 0: return 1 else: return arr[n - 1] * multiply(arr, n - 1)
测试你的例子:
print(multiply([1, 2, 3], 3)) # 输出6,符合预期
内容的提问来源于stack exchange,提问作者lililllil
相关产品推荐
相关产品推荐

