常用快速读入快速输出

此文为博主原创,转载时请通知博主,并把原文链接放在正文醒目位置。

简要介绍

众所周知,就运行速度而言,getchar()快于scanf快于cin,putchar()快于printf快于cout.

但getchar()和putchar()每次只能操作一个字符,使用起来比较麻烦。

于是就出现了快读、快速输出。

它们的原理都是把需要读入\输出的数字(本文只能用于处理整数)一位一位地输出,从而减少运行时间。

代码

 1 #include<cstdio>
 2 using namespace std;
 3
 4 inline void read(int &x)
 5 {
 6     char ch = getchar();
 7     char c;
 8     x = 0;
 9     while(ch > ‘9‘ || ch < ‘0‘)
10         c = ch,ch = getchar();
11     while(ch <= ‘9‘ && ch >= ‘0‘)
12         x = x*10 + ch-‘0‘,ch = getchar();
13     if(c == ‘-‘)    x = ~x + 1;
14 }
15
16 inline void put(int x)
17 {//快速输出
18     if (x < 0)
19         x = ~x + 1, putchar(‘-‘);
20     if (x > 9)
21         put(x / 10);putchar(x % 10 + ‘0‘);
22 }
23
24 int main()
25 {
26     int n;
27     read(n);
28     put(n);
29     return 0;
30 }

在实际应用时,可以把‘0‘写成48,‘9‘写成57,继续缩小所需时间。

时间: 2024-08-11 05:33:03

常用快速读入快速输出的相关文章

C++ 快速读入 模板

原创建时间:2018-03-23 19:40:02 比HK记者还快! C++ 快速读入.输出 在 C++ 上实现快速读入模板,这里是一个读取int 的示例. inline int Quick_Read(){ int s = 0,w = 1; char ch = getchar(); while (ch <= '0' || ch > '9'){ if (ch == '-') w = -1; ch = getchar(); } while (ch >= '0' && ch &

卡常神器——register 与 快速读入输出

快速读入模板 int read() { int s = 0, w = 1; char ch = getchar(); //getchar() 一次从键盘读入一个字符 while (ch <='0' || ch > '9') { if (ch == '-') w = -1; ch = getchar(); } while (ch >= '0' && ch <= '9') { s = s * 10 + ch - '0'; ch = getchar(); } return

【模版】快速读入/输出

快速读入模版 template < class T > inline void read(T &x) { x = 0; char c = getchar(); bool f = 0; while (!isdigit(c)) { f ^= c == '-'; c = getchar(); } while (isdigit(c)) { x = (x << 3) + (x << 1) + (c ^ 48); c = getchar(); } if (f) x = ~x

linux awk常用操作(快速将fasta格式的序列改成一行显示)

Some time when you want to change the fasta seq into one line For awk:         awk '/^>/&&NR>1{print "";}{ printf "%s",/^>/ ? $0" ":$0 }'  YourFile > newfilename For sed:             sed -n '1{x;d;x};${H;x

快读(快速读入)有多快(未完结)

在一些题目中,有的程序会被卡常(数),就是说,程序虽然渐进复杂度,(通俗来讲,算法的时间复杂度)可以接受,但因为算法本身的时间常数过大,导致程序在一些算法竞赛中超时.这是,快读就显得尤为重要了. 当然,如果程序算法本身就不高效,快读就更加重要了,可以让一些 快速读入可以让大家的输入更快 #include <cstdio>#include <ctime>#include <iostream>#define LOOP 3#define DATA 10000inline in

[模板] 快速读入

//一个跟hyj巨佬学来的快速读入模板 卡常大佬不愧是卡常大佬 1 bool isdigit(char ch) 2 { 3 if(ch>='0'&&ch<='9') return 1; 4 return 0; 5 } 6 inline void fastin(int &v) 7 { 8 static char ch; 9 v=0; 10 bool p=0; 11 do 12 { 13 ch=getchar(); 14 if(ch=='-') p=1; 15 }while

快速读入(比scanf和getchar还快的读入方法)

1 int read()//快速读入 2 { 3 int x=0,f=1;char ch=getchar(); 4 while(ch<'0'||ch>'9') 5 { 6 if(ch=='-') 7 f=-1; 8 ch=getchar(); 9 } 10 while(ch>='0'&&ch<='9') 11 { 12 x=x*10+(ch-'0'); 13 ch=getchar(); 14 } 15 return f*x; 16 } 原文地址:https://ww

HDU - 5187 zhx&#39;s contest(快速幂+快速乘法)

作为史上最强的刷子之一,zhx的老师让他给学弟(mei)们出n道题.zhx认为第i道题的难度就是i.他想要让这些题目排列起来很漂亮. zhx认为一个漂亮的序列{ai}下列两个条件均需满足. 1:a1..ai是单调递减或者单调递增的. 2:ai..an是单调递减或者单调递增的. 他想你告诉他有多少种排列是漂亮的.因为答案很大,所以只需要输出答案模p之后的值. Input Multiply test cases(less than 10001000). Seek EOF as the end of

Percona Server 5.6 RPM 快速安装&快速完全卸载

1.先快速安装,然后进行学习,参数文件慢慢再来学习. 安装包下载到/tmp路径下 # tar -xvf Percona-Server-5.6.34-79.1-r1c589f9-el6-x86_64-bundle.tar # ls *.rpm # rpm -ivh Percona-Server-shared-56-5.6.34-rel79.1.el6.x86_64.rpm # rpm -ivh Percona-Server-client-56-5.6.34-rel79.1.el6.x86_64.r