快读

有一些毒瘤题目是非常卡时间的,稍微慢一点就过不去,因此,快读应运而生:

但是下面这种写法只能用于读入整数:

#include<iostream>
using namespace std;

void Read(int &n)//只能读入整数 
{
    n=0;
    int f=1;//用于记录正负 
    char ch=getchar();
    
    while(ch<'0'||ch>'9')// 
    {
        if(ch=='-') f=-1;
        ch=getchar();
    }
    while(ch>='0'&&ch<='9')//下面两种用法都可以 
    {
        //n=(n<<1)+(n<<3)+(ch-'0');//
        n=(n<<1)+(n<<3)+(ch^48);//相当于  x*10+ch-'0';
        ch=getchar();
    }
    n=n*f;//切记乘以f  (记录的是+ -) 
    return ;
}
int main()
{
    int n,m;
    Read(n);
    cout<<n<<endl;
    return 0;
 } 

 

posted @ 2019-03-21 16:42  执||念  阅读(142)  评论(0编辑  收藏  举报