A Plus B 的题解
记住只在没有思路时使用题解,不要从它复制粘贴代码。请尊重题目和题解的作者。
在解题之前提交题解的代码会导致封禁。
在解题之前提交题解的代码会导致封禁。
作者:
概述
本题要求依次计算 对整数的和。核心解法是逐行读取两个整数并输出它们的和,注意结果可能超出
位有符号整数范围。
分析
核心观察
两数之和可能超过 位整型范围(
到
),因为输入绝对值小于
,最大和为
,略小于
(约
),但为了安全及避免中间溢出,应使用
位整数类型。
思路
直接对每对输入执行加法运算并输出。由于 最大为
,线性扫描即可。无需额外数据结构或复杂算法。
具体示例
样例输入为两行:
1 1,和为-1 0,和为
输出依次为 和
。
算法步骤
- 读取整数
。
- 循环
次,每次读取两个整数
a、b。 - 计算
a + b并输出结果。
复杂度分析
- 时间:
,每个输入处理常数时间。
- 空间:
,仅使用若干变量。
实现注意事项
- 使用
long long(C++)或int(Python 自动支持大整数)避免溢出。 - 输入输出量较大,建议使用快速 I/O(C++ 关闭同步流,Python 使用
sys.stdin.buffer)。 - 每行输出一个结果,注意换行。
源代码
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
cin >> N;
while (N--) {
long long a, b;
cin >> a >> b;
cout << a + b << '\n';
}
return 0;
}
import sys
def main():
data = sys.stdin.buffer.read().split()
if not data:
return
N = int(data[0])
out = []
idx = 1
for _ in range(N):
a = int(data[idx]); b = int(data[idx + 1])
idx += 2
out.append(str(a + b))
sys.stdout.write('\n'.join(out))
if __name__ == "__main__":
main()
评论