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 }
来源:https://www.cnblogs.com/cmyg/p/9554970.html