5 条题解
-
-1
显然数据不够强,众所周知,2^1023也是双精度浮点数,2^-1074也是双精度浮点数,而两个任意的浮点数fmod都是良好定义不需要舍入的,于是你可以:
#include <iostream> #include <cstdio> #include <cmath> int main() { double dmin=pow(2,-1074); double dsor=dmin*(2099); for(int i=-1074;i<1024;i++) printf("%5.5g%s", fmod(pow(2,i),dsor)/dmin, (i+1074+1)%8==0?"\n":" " ); return 0; }
然后先算a/b就会瞬间爆炸。
所以只是需要测试数据里把2^1023、2^-1074(*p)十进制精确值的每一位数打印出来,这个输入数据才不会被杠(
- 1
信息
- ID
- 6838
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 1
- 标签
- 递交数
- 82
- 已通过
- 39
- 上传者