题解:P10425 [蓝桥杯 2024 省 B] R 格式

· · 题解

看到题解区里面没有 Python 的写法,我来补一个。

首先,使用 Python 中普通的浮点数类型会因为数字太大而 RE,那么我们可以用精度更高的 Decimal 类型来解决。

Decimal 类型设置精度语句:decimal.getcontext().prec = val,表示将浮点数的精度设为 val,本题设置为 1054 即可。

最后,我们按照题目的要求计算就行了。

代码如下:

import math
import decimal
# 导入数学函数和 Decimal 类型
def main():
    n, d = input().strip().split() # 读入 n, d
    n = int(n)
    decimal.getcontext().prec = 1054 # 设置精度为 1054
    print(round(decimal.Decimal(d) * (decimal.Decimal(2) ** n))) # round 是四舍五入函数,依赖 math 库

if __name__ == "__main__":
    main()