1. ホーム
  2. python

[解決済み] プロジェクト・オイラー第13回理解講座(Python編)

2022-02-07 19:31:58

質問

問題13 http://projecteuler.net/problem=13

次の50桁の数字100個の和の最初の10桁を計算しなさい。 つまり、問題の和は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個の数字が与えられ、それぞれの数字は50桁の長さです(X*10^50の大きさ)。JLLAgrangeが指摘するように、この部分はpythonでは問題にならないはずで、整数には最大値がないからです。