我做了一項家庭作業:在5 ** 200,000的數字中找到最大50,000個連續數字的總和。 我知道,如果我在這個數字上做循環,它不會在可行的時間內結束。 我試圖把這個數字放在一個列表中,並遍歷列表,我不明白它是如何工作的?爲什麼它不像第一種情況?是什麼讓它更快? 這是我的代碼:作業:永不結束循環5 ** 200000
def maxdigits(number,digits):
s=str(number) #conversting the number to a string
l = [int(char) for char in s]
maximum = current = sum(l[:digits])
for i in range(0,len(l)-digits):
current = current-l[i]+l[i+digits]
if current > maximum: maximum = current
return maximum
定義「數字5 ** 200,000中連續50,000個數字的最大總和」。這與數字的總和有什麼不同?你在說連續50,000個數字嗎?無論如何,你的問題在於數學洞察力,而不是代碼。 – Marcin
是的,我將5 ** 200000轉換爲字符串 – CnR
該代碼在我的機器上運行良好。 – colcarroll