读入优化(快读)

 

P.S.

其实还有输出优化,就是把数字的每一位依次输出。

 

------------------------------------------------------------------

 

getchar()读入速度比scanf()快

 

可以根据实际情况设置读入方式,第一个while里的内容可以根据空格和换行符进行修改。

 

x*10 : (x<<3)+(x<<1)

 

正数和负数都可以:

#include <bits/stdc++.h>

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

int main()
{
    int x;
    read(x);
    printf("%d",x);
    return 0;
}

 

 

只有正数:

 1 #include <bits/stdc++.h>
 2 
 3 inline void read(int &x)
 4 {
 5     x=0;
 6     char ch=getchar();
 7     while (ch<'0' || ch>'9')
 8         ch=getchar();
 9     while (ch>='0' && ch<='9')
10         x=x*10+ch-'0',ch=getchar();
11 }
12 
13 int main()
14 {
15     int x;
16     read(x);
17     printf("%d",x);
18     return 0;
19 }

 

posted @ 2018-08-29 16:06  congmingyige  阅读(248)  评论(0编辑  收藏  举报