使用C++的标准cin进行读入速度比较慢,尤其是在大数据的情况下,所以我们需要使用一种方法,按照字符读入,最后再“组装”成整数。由于字符读入比数字要快,所以这样做可以提高读入速度。

方法:逐位读入,把原来的数乘上10再加上这个数即可。乘上10的目的是空出个位放入待读入的数。
例如,输入123
先读入1,x=1
再读入2,x=x*10+2=10+2=12
再读入3,x=x*10+3=120+3=123
对于负数的处理,只需要判断读入的第一个数是否为负数。
 
void fast_read(int &x){
  x=0;
  char c;
  int fs;
  c=getchar();
  while(c==' ')c=getchar();
  if(c=='-')fs=1;
  else fs=0,x=x*10+c-'0';
  while(c>='0'&&c<='9'){
    c=getchar();
    if(c>='0'&&c<='9')x=x*10+c-'0';
  }
  if(fs)x*=-1;
  return;
}

 

相关文章:

  • 2022-12-23
  • 2021-12-13
  • 2022-01-19
  • 2021-12-20
  • 2021-08-15
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-11
  • 2021-09-28
  • 2022-12-23
相关资源
相似解决方案