社区讨论
关于本题原理
P2394yyy loves Chemistry I参与者 3已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mlqo3num
- 此快照首次捕获于
- 2026/02/17 21:57 前天
- 此快照最后确认于
- 2026/02/18 21:24 18 小时前
见这份代码:
CPP#include<bits/stdc++.h>
using namespace std;
int main()
{
long double s;
scanf("%Lf",&s);
long double ss=s/23;
cout<<fixed<<setprecision(8)<<ss;
}
#7,#8 两个测试点 WA。
看了眼题解区,都说是
CPPlong double 精度不够,要用 scanf 强制提高精度。于是有了第 版代码:#include<bits/stdc++.h>
using namespace std;
int main()
{
long double s;
scanf("%18Lf",&s);
long double ss=s/23;
cout<<fixed<<setprecision(8)<<ss;
}
这样就 AC 了。可是本蒟蒻又有疑问,为什么
CPP%18Lf 就能过,别的数可以吗?详见下面这份代码:#include<bits/stdc++.h>
using namespace std;
int main()
{
long double s;
scanf("%30Lf",&s);
long double ss=s/23;
cout<<fixed<<setprecision(8)<<ss;
}
#7、#8 又 WA 了,这让本人一头雾水,在这里想请教下懂行的大佬:
%num(一个数字)Lf有什么用,为什么题解区说可以“提高精度”?- 如果上面那条属实,那么
%30Lf按理说精度更高,为什么又不行了呢? - 本题究竟在考什么,有哪些浮点数方面的盲区需要注意?
最后感谢各位的回复!
回复
共 3 条回复,欢迎继续交流。
正在加载回复...