C++ 读入优化与输出优化

C++ 读入优化与输出优化

正负整数的读入优化:

#include
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) 表示 x x 是否是 0 ~ 9 的整数 ,是则返回 true true ,不是则是 false false 。
•注意要用 cctype cctype 头文件。

正负实数的读入优化

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;
}

正负整数的输出优化:

void write(int x){
    int y=10,len=1;
    while(y<=x) y*=10,len++;
    while(len--){y/=10,putchar(x/y+48),x%=y;
}

你可能感兴趣的:(算法总结,C++语言学习)