快读快写
应用
一些题目需要读取的数据量十分庞大,很可能读取数据次数高达几十万次,而这时用cin或者scanf时间上就有了一些差距(scanf比cin要快),当输入数据更加庞大,scanf时间上也有些乏力,毕竟有些题目就是考你会不会快读快写,C语言输入输出字符时是要比数字输出的快的,我们可以利用这一点来把数字转化成字符来输出
下面的inline是内联函数的意思,小伙伴可以看 https://blog.csdn.net/hyqsong/article/details/51857833 了解一下
快读代码
inline int read(){
int x=1,y=0;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-') x=-1; ch=getchar(); //这里的循环是为了避免输入数字之前的空格造成影响
}
while(ch>='0'&&ch<='9'){
y=y*10+ch-'0';
ch=getchar();
}
return x*y;
}
需要注意的是每次循环最后都要加一句getchar()
快写代码
inline void write(int n){
if(n<0) putchar('-'),n*=-1;
if(n>9) write(n/10);
putchar(n%10+'0');
}
代码比较好理解,注意puchar()里面的n%10
制作不易,您的赞助是我最大动力,点击下面的赏,快来赞助我吧
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Doraemon's Blog!
评论