zoukankan      html  css  js  c++  java
  • 【XDOJ】坑爹的杜神

    原题:

    众所周知,杜神非常喜欢出大模拟,也非常喜欢设置一些细节坑人。例如,在某次大赛中,他出了一道这样的题

    (以下省略3000字)

    计算出答案a后,你应该将a除以1000,再保留到小数点后两位输出,四舍五入。

    保证a是非负整数,而且不超过64位有符号整数的表示范围。

    输入

    多组数据,每组数据1行,包含整数a。

    输出

    每组数据输出一行,表示杜神要你输出的答案。

    这种菜题,我还不是一刀切

    1 while(scanf("%lld",&a)!=EOF){
    2      printf("%.2Lf
    ",(long double)a/1000.0);

    听群里大哥说,为了防止丢精度,四舍五入最好加上eps

    1 while(scanf("%lld",&a)!=EOF){
    2         printf("%.2Lf
    ",(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
    ",(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
    ",(long double)b/100.0);

  • 相关阅读:
    带你看懂MySQL执行计划
    MySQL rename table方法大全
    MySQL慢日志全解析
    mybatis-通用mapper
    springboot-数据访问
    docker-1常用命令
    springboot-错误处理
    springboot-配置1
    react--temp
    了解react记录2-生命周期
  • 原文地址:https://www.cnblogs.com/cdcq/p/11619595.html
Copyright © 2011-2022 走看看