读入优化与输出优化

读入优化
首先,读入优化这里是只是针对整数,getchar读字符是非常快的,所以我们就用getchar了。(下面都假设输入的数为x)

void read(int &x)
{
    int f=1;x=0;char s=getchar();
    while(s<'0'||s>'9'){if(s=='-')f=-1;s=getchar();}
    while(s>='0'&&s<='9'){x=x*10+s-'0';s=getchar();}
    x*=f;
}

输出优化
输出怎么优化?putchar!putchar是比printf快的。(下面都假设输出的数为x)

void print(int x)//这里当然不用实参
{
    if(x<0)//负数
    {
        putchar('-');
        x=-x;
    }
    if(x>9)//只要x还是2位数或更多就继续分解
        print(x/10);//这里递归完后栈里面x的每一位是倒过来的
    putchar(x%10+'0');//输出(要把int型变为char型,加'0'即可)
}

你可能感兴趣的:(小技巧棒棒哒)