对于这道题目来说,1⩽a,b⩽4×10^18,因此我们用 long long/signed long long 数据类型。因为在算法竞赛中 long long 常用些,所以这里的代码也用的是 long long 这个数据类型。
接下来就是如何表示 a+b 了,这里就要讲到 C++ 中的数字运算符。首先就是最基本的加减乘除,它在 C++ 中分别表示为 +
、-
、*
、/
,但请注意,/
在 C++ 中的定义并不完全等同于我们平常的四则运算中的除法,如果两边都是整型变量,在 C++ 中,/
默认为整除。那么有没有办法可以让它变成我们平常的除法呢?答案是肯定的,让 /
两边中的一个或者两个数变成浮点型变量(floatfloat、doubledouble、long doublelong double 等),就可以让 /
的结果变为实际结果而不是整除后的结果了。例如,5/65/6 在 C++ 中的结果是 00,但如果你将其变成 5.0/65.0/6 或 5/6.05/6.0 或 5.0/6.05.0/6.0,那么 C++ 就会输出其正确的结果 0.8333…0.8333…(具体输出多少位取决于题目具体要求)。那么它的运算顺序是怎样的呢?如果仅限于加减乘除的话,它的运算顺序和平常的四则运算顺序是一样的:先乘除后加减,有括号先算括号里面的算式。只不过 C++ 里面提供运算的符号仅为小括号 ()
罢了。
那么我们对于程序做了深入的剖析,想必大家都已经领会到 C++ 的语言魅力了。
#include <iostream>
using namespace std;
int main() {
long long a, b;
cin >> a >> b;
cout << a + b;
return 0;
}