快读快写
luckydrawbox · · 算法·理论
long long read(){
long long x=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}
while(isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
void write(long long x){
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
快读
首先读入一个数字,我们需要他具体的值
int x=0,f=1;
为了实现快读的快,我们需要用超快的
char ch=getchar();
然而读入的过程中可能有许多多余的字符,如 \n,\0,a 等等,为了过滤掉他们,我们使用一个库函数
也就是相当于
在读入的过程中记录符号,最后把数字与符号相乘即可。
long long read(){
long long x=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-') f=-1;ch=getchar();}
while(isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
快写
如果 - 号,并改成正数。
if(x<0) putchar('-'),x=-x;
如果
if(x>9) write(x/10);
最后输出各位。
void write(long long x){
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
back