其他分享
首页 > 其他分享> > 卡常技巧

卡常技巧

作者:互联网

前言

本文会不定时更新。

快读

这是利用$getchar$来优化

inline int read(){
	register int x=0,v=1,ch=getchar();
	while(!isdigit(ch)){if(ch=='-')v=-1;ch=getchar();}
	while(isdigit(ch)){x=(x<<3)+(x<<1)+(ch^'0');ch=getchar();}
                //与x=x*10+(ch-'0')意义相同
	return x*v;
} 

快写

这是利用$putchar$来优化

void _print(int x){
	if(x<10){putchar(x+'0');return;}//小于10就直接输出,return
	_print(x/10);
	putchar(x%10+'0');//输出
}
inline void print(int x){
	if(x<0)putchar('-'),x=-x;     //x为负数就变为相反数,输出符号然后进行递归
	_print(x);
}

其他

可以在每个函数前加上$inline$,在定义前加上$register$等。

 

标签:ch,技巧,int,register,while,isdigit,卡常,getchar
来源: https://www.cnblogs.com/Lates/p/12259471.html