警示后人(有任意数量的WA的)
  • 板块P1729 计算e
  • 楼主asd890123
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/8/14 10:51
  • 上次更新2024/8/14 13:05:21
查看原帖
警示后人(有任意数量的WA的)
1074084
asd890123楼主2024/8/14 10:51

首先用(1+1/n)n(1 + 1/n)^n是不行的,只能用展开式,不论你是打表还是高精度,打表的程序或者提交的程序中n至少要设置到4000,亲测1000得40分,2000得70分,3000得80分,4000AC,还有就是python中直接写小数没有高精度的,要使用decimal库中的小数,附上本巨弱的打表:

import decimal as dec
dec.getcontext().prec = 10005
n = 4000
fac = 1
e = dec.Decimal(1)
for i in range(1,n + 1):
    fac *= i
    e += dec.Decimal(1) / fac
print(e)
2024/8/14 10:51
加载中...