题目大意
输入a和b,求和
题目分析
这道题目非常的简单,但是在这里给大家推荐一个不一样的解答方式,快读.
我猜你一定是这样写输入的吧
cin>>a
而我们知道,平时解题经常会遇到TLE,而其中的一小部分原因就是因为cin太慢了,如果你使用这种方式就会让输入更快一些
scanf("%d",&a);
不过其实还有比这个更快的
int read() {
int x = 0, f = 1;
char c = getchar();
while (c < '0' || c > '9') {
if (c == '-') f = -1;
c = getchar();
}
while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
上面的代码请务必好好理解一下,尤其是新手
新手应该不会写函数吧
所以就当作学习、练习函数和字符串转文字了
好了,那么来说一下,原理,主要就是c/c++输入字符串比用cin要更快,所以直接用getchar()输入字符串,再转换成int类型的数字
既然有快读,就一定有快写,来看看吧
void write(int x) {
if (x < 0) putchar('-'), x = -x;
if (x > 9) write(x / 10);
putchar(x % 10 + '0');
}
这个原理和上面一样,就不多做解释了
所以最后代码
#include<bits/stdc++.h>
using namespace std;
int read() {
int x = 0, f = 1;
char c = getchar();
while (c < '0' || c > '9') {
if (c == '-') f = -1;
c = getchar();
}
while (c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();
return x * f;
}
// quick write
void write(int x) {
if (x < 0) putchar('-'), x = -x;
if (x > 9) write(x / 10);
putchar(x % 10 + '0');
}
int main(){
int a=read(),b=read();
write(a+b);
return 0;
}