P3922
jijidawang · · 题解
题目背景好评
一个数乘
其中要想最高位为
于是答案就是
然而这个真正的
高精浮点数我又不会写,只能用 Python 了 .
Python 有一个库叫 decimal,里面自带一个高精浮点数 Decimal,可以通过 getcontext().prec 调精度 .
具体看代码吧:
from decimal import Decimal, getcontext
getcontext().prec = 1000
n, k0 = input().split()
n = Decimal(n)
k0 = Decimal(k0)
if n == Decimal('0'):
k0 = 10 ** k0
print((k0 * Decimal('1.25').log10() + Decimal('0.999999999')) // Decimal('1'))
要注意的是运算要把一般字面量强转成 Decimal .
这个代码可能写法比较丑,仅供参考 .
听说标程写了 17k