一道ACM题,很简单!但WA了
答案:1 悬赏:80 手机版
解决时间 2021-03-22 18:38
- 提问者网友:無理詩人
- 2021-03-22 14:07
一道ACM题,很简单!但WA了
最佳答案
- 五星知识达人网友:英雄的欲望
- 2021-03-22 14:58
还真没看出来有啥大问题,大概是浮点误差?你把
if(first)
{
sum = 9*pow(10.0,count);
}
else
{
sum = pow(10.0,count);
}改成
if(first)
{
sum = 9*(pow(10.0,count)+1e-8);
}
else
{
sum = pow(10.0,count)+1e-8;
}试一下,然后告诉我过了没……
追问过了,不是浮点误差,是他全记得的时候我输出0了,按理是1;追答这里如果全记得,count=0, pow(10.0, 0) =1,这个我测试过,没问题,你看一下
1
12345678901
Case #1: 1
Process returned 0 (0x0) execution time : 9.722 s
Press any key to continue.
所以我觉得还是浮点误差的问题,(在不同的机器/编译器上运行结果不一样?)你可以试一下到底是什么原因,过题不是目的,把错误的原因搞清楚才是目的
if(first)
{
sum = 9*pow(10.0,count);
}
else
{
sum = pow(10.0,count);
}改成
if(first)
{
sum = 9*(pow(10.0,count)+1e-8);
}
else
{
sum = pow(10.0,count)+1e-8;
}试一下,然后告诉我过了没……
追问过了,不是浮点误差,是他全记得的时候我输出0了,按理是1;追答这里如果全记得,count=0, pow(10.0, 0) =1,这个我测试过,没问题,你看一下
1
12345678901
Case #1: 1
Process returned 0 (0x0) execution time : 9.722 s
Press any key to continue.
所以我觉得还是浮点误差的问题,(在不同的机器/编译器上运行结果不一样?)你可以试一下到底是什么原因,过题不是目的,把错误的原因搞清楚才是目的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯