问题 13:http : //projecteuler.net/problem=13
计算出以下一百个 50 位数字之和的前十位数字。那么,问题总和是 5000 位数字,答案是结果中的前 10 位数字吗?
bignumber = list of the 5000 digits
sum(bignumber) = abcdefghijklmnopqrst...
answer = abcdefghj
Run Code Online (Sandbox Code Playgroud)
好吧,当我这样做时sum(bignumber) = 22660(甚至不是 10 位数字)...
我误读了这个问题吗?
def foo():
with open ("bignumber", "r") as myfile:
data=myfile.read().replace('\n', '')
data = map(long, data)
datasum = sum(data)
return (datasum)
Run Code Online (Sandbox Code Playgroud)
你误读了这个问题。
它们为您提供了 100 个需要求和的数字,每个数字的长度为 50 位(也称为 X*10^50 的大小)。50 位数字部分就在那里,所以你不能只使用传统的 int/long 数据类型(正如 JLLAgrange 指出的那样,这部分对于 python 来说不应该是问题,因为整数没有最大值)。