一、快读
g
e
t
c
h
a
r
getchar
getchar,需要调用头文件
c
s
t
d
i
o
cstdio
cstdio,一次只能读取单个字符,但速度快于
s
c
a
n
f
scanf
scanf。
g
e
t
c
h
a
r
getchar
getchar的使用方法:
char ch;
ch=getchar();
快读的基本原理就是对 g e t c h a r getchar getchar读入的单个字符进行处理以达到快速读入的目的。
快读代码:( i n t int int 可根据需要改为其他类型,如 l o n g long long l o n g long long。)
int read()
{
int s=0,w=1;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-')//判负
w=-1;
c=getchar();
}
while(c>='0'&&c<='9')//读入数字部分
{
s=s*10+c-'0';
c=getchar();
}
return s*w;
}
int a;
a=read();
或者也可以传递参数:
//传递参数版
void read(int &x)//必须加 &
{
x=0;
int w=1;
char c=getchar();
while(c<'0'||c>'9')
{
if(c=='-')
w=-1;
c=getchar();
}
while(c>='0'&&c<='9')
{
x=x*10+c-'0';
c=getchar();
}
x*=w;
return;
}
int a;
read(a);
二、快写
p u t c h a r putchar putchar,头文件 c s t d i o cstdio cstdio,读入单个字符,快于 p r i n t f printf printf。
char ch='a';
putchar(ch);
快写代码:
void print(int x)
{
if(x<0)//判负
{
putchar('-');
x=-x;
}
if(x>=10)
print(x/10);
putchar(x%10+'0');
return;
}
int a=123;
print(a);
三、快读和快写的使用条件
1.确保需要读入/输出的是整型;
2.如果数据范围小则最好不要使用快读快写,如果数据范围大则一定要使用快读快写。