一个高效率的程序从它优质的读入和输出开始,
最普通的读入和输出哪怕是初学者也会,所以这里就来讲 读入/输出优化
读入优化:(注: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秒也很重要)
觉得自己学到很重要的东西了吧~~~(大佬们可以好好地鄙视一下这句话)