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

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

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


读入优化:(注: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秒也很重要)


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值