我在Python中有一个问题,我已经为它创建了一个答案,但是我正在努力实现更好的答案效率。在
我不能使用函数,递归,只有基本的东西。。在
问题是:
3号电源2209有1000个数字。求出其和为最大的12个序数。在
例如:5次方36等于14551915228366851806640625。产生最大和的12个序列号是836685180664。在
sumOfBig=0
Big=""
x=5**36
strp=str(x)
s=len(strp)
print(x)
print()
for i in range(s-11):
new=strp[i:i+12]
l=0
for j in new:
l=l+int(j)
print(i)
print(new)
print(l)
print()
if l>sumOfBig:
sumOfBig=l
Big=new
print(Big)
print(sumOfBig)
你们对更好的代码有什么想法吗?在
这里有一个方法可以帮助你把11/12事件等等的所有事件都计算出来
退货:
^{pr2}$根据Python的Zen,“可读性很重要”,我认为这里介绍的单行操作比切片操作简单得多,尤其是当考虑到来自多个硬编码序列长度实例的错误时。在
好吧,你可以用更有效的方法来求12个连续数的总和。您可以跟踪12个序列号,从子集的和中弹出/减去最老的(最左边的),推/加最新的(最右的)一个。在
另外,
sum(iterable)
是一个内置函数。在我的新代码只有基本的
list
和for-loop
:相关问题 更多 >
编程相关推荐