【发布时间】:2013-11-21 15:24:49
【问题描述】:
问题 13:http://projecteuler.net/problem=13
计算出以下一百个 50 位数字之和的前十位。 那么,问题是否将 5000 位相加,而答案是结果中的前 10 位?
bignumber = list of the 5000 digits
sum(bignumber) = abcdefghijklmnopqrst...
answer = abcdefghj
好吧,当我这样做时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)
【问题讨论】:
-
问题是对 100 个数字求和,而不是对它们的数字求和。
-
这是12+34和1+2+3+4的区别。
-
请注意,这个问题在 python 中要简单一些,因为整数没有最大值:stackoverflow.com/questions/4581842/python-integer-ranges,所以你不必处理溢出。
标签: python