0

Project Eulerの問題をPython(私は初心者です)で解決しているときに、次のエラーが発生しました。2^1000の桁の和を求める問題です。そのために、次のコードを書きました。

sum=0
x=2**1000
while(x):
  sum += x%10
  print(sum) #Just to check whats happening
  x /= 10

print("\n"*5)
print("Sum = ",sum)

このために、私は小数をその間のどこかに追加します。

出力:

6
10.0
10.0 
12.0
16.0

....

1116.0
1122.0
1131.625  #Why does the decimal get added?
1138.59375

 .....

 1181.495136589947
 1186.5812084526442
 1188.089815638914
 1195.240676357541
 1195.9557624294036
 1197.0272710365898
 1197.1344218973084
 1197.1451369833803
 1197.1462084919874

 .....
 1197.1463275484991 #This number gets repeated a lot of times
 1197.1463275484991
 1197.1463275484991



 Sum = 1197.1463275484991

何が起こっているのか説明して助けてください。

4

2 に答える 2

2

浮動小数点の代わりに整数除算を使用します。

x //= 10
于 2014-12-09T19:05:58.140 に答える