我编写了一个python函数largestProduct(n)
,它返回由两个n位数的乘积构成的最大数。这段代码在n
到第3行运行良好,但显示了n>3
的内存错误。有什么方法可以改进我的代码来避免这个错误吗
def largestProduct(n):
number_lst = []
prod_lst = []
count = 0
for i in range(10**(n-1),(10**n)):
number_lst.append(i)
while count!= len(number_lst):
for i in range(len(number_lst)):
prod_lst.append(number_lst[count]*number_lst[i])
count +=1
prod_set = list(set(prod_lst))
return max(prod_lst)
好吧,你不需要任何存储来循环你需要的东西:
但你为什么要这么做?两个长数的最大乘积始终是您可以用n数字平方写入的最大数,即:
您应该考虑创建一个生成器函数。最后,您可以迭代函数的输出,该函数只逐个处理每个元素,而不是将整个列表保存在内存中
见https://wiki.python.org/moin/Generators
相关问题 更多 >
编程相关推荐