gpt4 book ai didi

python - 如何在递归编程中用数组中的所有元素编写乘法表?

转载 作者:行者123 更新时间:2023-12-04 08:01:01 24 4
gpt4 key购买 nike

我正在创建一个包含数组中所有元素的乘法表,例如将所有元素(2,3,7,8,10)与第一个元素(2)相乘。然后,将新值 (4,6,14,16,20) 与第二个元素 (3) 相乘,依此类推。
我可以通过循环相对简单地实现结果。

def multiplication(arr):
newArr = arr.copy()
for j in range(len(arr)):
newArr= [val*arr[j] for val in newArr]
return newArr

print(multiplication([2,3,7,8,10]))
但是当我尝试递归解决它时,我无法保留具有相乘值的原始元素。
def multiplicationRecursively(arr, index=0):
if (index >= len(arr)):
return arr
arr = [val*arr[index] for val in arr]
return multiplicationRecursively(arr, index+1)

print(multiplicationRecursively([2,3,7,8,10]))
难道我做错了什么?我想我需要弄清楚如何保留原始数组以获得正确的乘数?我正在学习递归编程,所以我不愿意使用可能的内置方法。

最佳答案

结果数组只不过是原始数组的所有元素与原始数组的每个元素相乘。所以我们可以写一个递归如下:

def multiplicationRecursively(arr, mulitplier, index=1):

if (index <= len(arr) -1):
mulitplier = mulitplier * arr[index]
return multiplicationRecursively(arr, mulitplier, index+1)
return [mulitplier*val for val in arr]

print(multiplicationRecursively([2,3,7,8,10], 2))

关于python - 如何在递归编程中用数组中的所有元素编写乘法表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66469371/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com