读入优化(快读)

孤街浪徒 提交于 2020-03-15 19:40:52

 

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 }

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!