第一篇博客,先从最基础的开始(老师常讲的 不忘初心 )

一个高效率的程序从它优质的读入和输出开始,

最普通的读入和输出哪怕是初学者也会,所以这里就来讲 读入/输出优化


读入优化:(注:getchar()的功能是读入一个字符)

int read(){
	char c=getchar();
	int num=0;int f=1;//num为计数变量,f用作符号的处理.
	while(c<'0'||c>'9'){
		if(c=='-')f=-1;//说明是负数,f改为-1.
		c=getchar();
	}
	while(c>='0'&&c<='9'){
		num=num*10+(c-'0');//累加在计数变量上。
		c=getchar();
	}
	return num*f;//读入的正确结果
}


输出优化:(注:putchar()的功能是输出一个字符)

void write(int x){
	if(x<0){//说明x是负数
		putchar('-');//输出负号
		x=-x;//取x除符号外的数值部分
	} 
	if(x>9)write(x/10);//还不是一位数,递归往高位
	putchar(x%10+'0');//前面所有高位已输出完毕,输出目前最低一位
}


By the way~~~~~ 读入/输出优化到底有多强?

同一道题,同样是AC,除读入输出外一毛一样的两个程序。

没加读入/输出优化的:用时: 1408ms

加了读入/输出优化的:用时: 1252ms

共省了接近0.2秒的时间(参加过OI系列竞赛的同学应该知道这0.2秒也很重要)


觉得自己学到很重要的东西了吧~~~(大佬们可以好好地鄙视一下这句话)

猜你喜欢

转载自blog.csdn.net/bill_benation/article/details/80530383
今日推荐