前言
有些题目需要读取大量数字,如果用scanf或cin可能会超时,由于读取字符的速度远小于读取数字,故可以考虑将字符转成数字的方法来提高速度。
相关知识
isdigit(x)函数:输入x,如果为十进制数字,返回1,否则返回0。
字符-‘0’:能将字符转为十进制数字
快读模板
typedef long long ll;//用ll表示long long
inline ll read() //inline减少内存消耗
{
ll x = 0, j = 1;
char ch = getchar();
while (!isdigit(ch))//判断是否读入数字
{
if (ch == '-')j = -1;//正负性标记
ch = getchar();//再次读入一个字符,并根据此决定是否继续循环
}
while (isdigit(ch))
{
x = x * 10 + ch - '0';//转化为十进制数字
ch = getchar();//再次读入一个字符,并根据此决定是否继续循环
}
return x * j;输出一个数字
}