读入优化(快读)
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 }