使用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;
}

最新文章

  1. 2016 、12 、11&lt;本周&gt;
  2. HDU 1131 Count the Trees 大数计算
  3. hdu1710 二叉树的遍历
  4. SAPI训练文件存储位置
  5. Java多线程-新特性-线程池
  6. DzzOffice共享文件夹、共享目录设置
  7. hdu 1877 又一版 A+B
  8. List 排序
  9. iOS 中如何监测某段代码运行的时间
  10. [置顶] 【IOS】IOS7 UI适配
  11. ODBC操作数据库
  12. OpenCV角点检测goodFeaturesToTrack()源代码分析
  13. Re:Exgcd解二元不定方程
  14. spring-boot-starter大力出奇迹
  15. 设计模式—装饰模式的C++实现
  16. pycharm opencv4.0安装使用
  17. callee和斐波那契数列
  18. 文件上传:input file FileReader
  19. Java网络通信基础编程
  20. git忽略文件留存

热门文章

  1. 嵌入式linux启动过程详解
  2. Linux 文件目录管理的指令
  3. Redis雪崩和Redis穿透
  4. CVE-2021-1732 Windows 本地权限提升漏洞 EXP 下载
  5. spring-boot 2.5.4,nacos 作为配置、服务发现中心,Cloud Native Buildpacks 打包镜像,GitLab CI/CD
  6. 三个线程按循序一个打印A一个打印B一个打印C 循环打印?
  7. WPF 绘图 和动画
  8. lambda与方法引用
  9. java的stream的使用
  10. Dapper同时操作任意多张表的实现