【发布时间】:2020-02-12 12:57:16
【问题描述】:
Soo...我正在尝试解决问题 n。 8 在 Project Euler 的网站 (https://projecteuler.info/problem=8) 我想知道是否有一种更简洁的方式来写这个 if 条件
n="7316717653..." # there are 1000 digits
(https://projecteuler.info/problem=8)
Max=0
s=[int(s) for s in n]
for i in range(len(s)-3):
if s[i]*s[i+1]*s[i+2]*s[i+2] > Max:
Max=s[i]*s[i+1]*s[i+2]*s[i+3]
print(Max)
# In particular
if s[i]*s[i+1]*s[i+2]*s[i+2] > Max:
Max=s[i]*s[i+1]*s[i+2]*s[i+3]
我怎样才能写得更好(我也必须写成 如果 s[i]*s[i+1]*s[i+2]*s[i+2]*s[i+3]...*s[i+13] 所以找到更好的方法会很好.. 提前谢谢!
编辑: 我把帖子写得很糟糕......对不起。
我的意思是:
如果 s[i]*s[i+1]*s[i+2]*s[i+3]*s[i+4]*s[i+5]*s[i 我可以写吗+6]*s[i+7]*s[i+8]*s[i+9]*s[i+10]*s[i+11]*s[i+12]*s[i+ 13] > 最大:
或按照建议(更好,谢谢)
Max=max(Max,s[i]*s[i+1]*s[i+2]*s[i+3]*s[i+4]*s[i+5]*s [i+6]*s[i+7]*s[i+8]*s[i+9]*s[i+10]*s[i+11]*s[i+12]*s[ i+13])
以更好的方式? 就像自动执行 s[i+n] 13 或任何时候一样。 对不起我的英语不好。
编辑 2: 在我编辑的时候你回答了,谢谢大家!
【问题讨论】:
-
也不要使用
Max作为变量名。