这道题困扰了我好长时间,我经过下载数据和对题解对拍终于找到了原因。
我是根据第一篇题解看的,问题答案是这样:
-
对 double 的赋值掉精度
-
这也是最为主要的 实数误差:
比如下面这个程序:
#include<bits/stdc++.h>
using namespace std;
int main(){
int x=90*0.7;
cout<<x;
return 0;
}
它的输出值是 62,而非 63,这也是我对拍发现的,第一篇题解会算成 63。
对于这道题来讲,其实这完全都是没必要的,本题保证一位小数且在 0.1 到 0.8 之间,我们完全可以规避掉实数。