这是一个 Python 代码,用于查找我们可以从一个数字的13个相邻数字中获得的最大乘积 . 没有错误消息,但此程序未提供所需的输出 . 我每次都得到(在repl.it) 1
,尽管答案显然不是 1
. 我是编程新手 .
我的尝试
我已将数字转换为字符串并将其存储到数组中以逐个元素获取 . 外部for循环遍历所有数字(上次当 i
具有值 len(n)-12
时, i+j
将到达数组的最后一个条目 . (虽然数组以相反的顺序存储数字,但我还是不需要) .
n = "123899778978978787888787778788767677667"
arr = []
for i in range(len(n)):
arr.append(int(n)%10)
n = str(int(n)//10)
mul = 1
max_mult = 1
for i in range(len(n)-12):
for j in range(13):
mul = mul * int(arr[i+j])
if(max_mult<mul):
max_mult = mul
print(max_mult)
谁能告诉我哪里出错了?任何帮助将不胜感激 .
1 回答
使用
zip
可以简化您的逻辑:如果你坚持使用
for
循环:请注意,您可以修改现有的基于
range
的迭代,但这不被视为Pythonic: