B3710 破碎的历史
Source & Knowledge
2023 年 2 月语言月赛,由洛谷网校入门计划/基础计划提供。
考察多重循环和小数处理。
文字题解
显然,本题涉及到 double 类型作为循环变量,通过四重循环对
但是,浮点数的运算存在浮点误差,== 进行比较,很可能无法得到正确的结果。
对于这种情况,我们有两种处理方法:
-
设置浮点误差允许量
\delta 。当|(1-p_1)(1-p_2)(1-p_3)(1-p_4)-S| < \delta 时,均认为相等。考虑到本题精度要求,\delta 可取10^{-8} 。 -
对
S 乘10^8 ,p_1,p_2,p_3,p_4 均乘100 。将浮点数转化为了整形进行处理。