首页 > 其他 > 详细

读优输优

时间:2019-02-19 19:33:10      阅读:171      评论:0      收藏:0      [点我收藏+]

1. 读入优化

  • C++中有一个函数:getchar() ,用于读入字符,那么这跟读入整数有什么关系呢?

  • 其实,经过类似高精度的处理,就可以实现类型转换啦!

  • 下面是正负数读入优化模板:

  • #include<cctype>
    inline int read()
    {
        int X=0,w=0; char ch=0;
        while(!isdigit(ch)) {w|=ch==-;ch=getchar();}
        while(isdigit(ch)) X=(X<<3)+(X<<1)+(ch^48),ch=getchar();
        return w?-X:X;
    }

    isdigit(x)isdigit(x) 表示 xx 是否是 0 ~ 9 的整数 ,是则返回 truetrue ,不是则是 falsefalse 。

    注意要用 cctypecctype 头文件。

    像这样“XXX=read()”使用函数即可,效率超高!

    这里补充一个正负实数的读入优化:

    inline double dbread()
    {
        double X=0,Y=1.0; int w=0; char ch=0;
        while(!isdigit(ch)) {w|=ch==-;ch=getchar();}
        while(isdigit(ch)) X=X*10+(ch^48),ch=getchar();
        ch=getchar();//读入小数点
        while(isdigit(ch)) X+=(Y/=10)*(ch^48),ch=getchar();
        return w?-X:X;
    }

    2. 输出优化

    • 在个别繁杂题目中,也可以使用输出优化!

    • 与读入优化类似,使用用来输出字符的“putchar()”函数,也可到目的

    • 下面是正负数输出优化模板:

    • inline void write(int x)
      {
           if(x<0) putchar(-),x=-x;
           if(x>9) write(x/10);
           putchar(x%10+0);
      }

      总结

      • 使用读入优化与输出优化,可以在一些题目中赢得很多时间,甚至逆转AC!

      • 而且代码很短,性价比很高,完全可以经常使用!

      注意

      • 切记在使用时,应注意数据类型大小和正负!

读优输优

原文:https://www.cnblogs.com/zzrblogs/p/10402895.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!