坑爹的杜神
Posted cdcq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了坑爹的杜神相关的知识,希望对你有一定的参考价值。
原题:
众所周知,杜神非常喜欢出大模拟,也非常喜欢设置一些细节坑人。例如,在某次大赛中,他出了一道这样的题
(以下省略3000字)
计算出答案a后,你应该将a除以1000,再保留到小数点后两位输出,四舍五入。
保证a是非负整数,而且不超过64位有符号整数的表示范围。
输入
多组数据,每组数据1行,包含整数a。
输出
每组数据输出一行,表示杜神要你输出的答案。
这种菜题,我还不是一刀切
1 while(scanf("%lld",&a)!=EOF) 2 printf("%.2Lf\\n",(long double)a/1000.0);
听群里大哥说,为了防止丢精度,四舍五入最好加上eps
1 while(scanf("%lld",&a)!=EOF) 2 printf("%.2Lf\\n",(long double)a/1000.0+eps);
longdouble精度不够
那我拆成两半
1 while(scanf("%lld",&a)!=EOF) 2 long long b=a/10000; a=a%10000; 3 if(b) printf("%lld",b); 4 printf("%.2Lf\\n",(long double)a/1000.0+eps);
99999,出现进位会错
那我特判最后一个数总行了吧
1 while(scanf("%lld",&a)!=EOF) 2 long long b=a/10+(a%10>=5); 3 printf("%.2Lf\\n",(long double)b/100.0);
以上是关于坑爹的杜神的主要内容,如果未能解决你的问题,请参考以下文章