gpt4 book ai didi

python - 如何在不对元素位置进行硬编码的情况下嵌套循环

转载 作者:行者123 更新时间:2023-12-02 04:32:14 26 4
gpt4 key购买 nike

我的问题是循环遍历一个长数字,以便找到该数字中 5 个连续数字的最大乘积。我有一个解决方案,但它目前涉及元素位置的硬编码,感觉/看起来很丑陋并且不可扩展(如果我想要 10 个连续项的总和怎么办?)。有没有一种方法可以将此解决方案“Python”起来并以某种方式嵌套或优化它?

n = 82166370484403199890008895243450658541227588666881

N = str(n)
Pro = 0
for i in range(0, len(N) - 4):
TemPro= int(N[i])*int(N[i+1])*int(N[i+2])*int(N[i+3])*int(N[i+4])
if TemPro> Pro :
Pro = TemPro
print(Pro )

操作系统:Windows 7
语言:Python 3

最佳答案

N 的切片上使用 reduce 的完美案例:

from functools import reduce # python 3
nb_terms = 5
for i in range(0, len(N) - nb_terms - 1):
TemPro= reduce(lambda x,y:int(x)*int(y),N[i:i+nb_terms])
if TemPro> Pro :
Pro = TemPro
print(Pro)

reduce 会将所有项相乘,没有可见的循环,也没有对项的数量进行硬编码。

关于python - 如何在不对元素位置进行硬编码的情况下嵌套循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47622471/

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