通过率 66% · 提交 538 · 通过 354
输入n组数字,每组数字包含两个整数A和B,计算它们的和。
这类题属于算法机考高频题型中「基础语法 / ACM模式练习」方向的高频题型,通常考察对「基础语法 / ACM模式练习」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
第一行输入数字n。 接下来n行,每一行在同一行中输入正整数A和B,用空格隔开 1 <= n <= 10 -100 <= A, B <= 100
输出n行,每一行包含一个数字,表示每组两个数字的和
示例 1
输入示例
2 1 2 3 4
输出示例
3 7
示例 2
输入示例
3 -1 1 2 -2 3 -3
输出示例
0 0 0
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
题意一句话:第一行给出数据组数 n,随后 n 行每行两个整数 A、B,逐组输出 A + B。
标准的「多组数据 A+B」读入练习:难点不在计算,而在于一次把所有输入读干净。把整个标准输入按空白切成一串数字 token,第 0 个是 n,后面每两个一组就是一对 A、B,按序取用即可,不必纠结换行的位置。
1. sys.stdin.read().strip().split() 一次性读入全部输入,按空白(含换行)切分; 2. 取 data[0] 为组数 n; 3. 用下标 idx 从 1 开始,每次取两个数相加、结果存入列表,idx += 2; 4. 最后 '\n'.join(out) 一次性输出,每组占一行。
sys.stdin.read().split() 天然兼容「两个数同行或分行」的各种排布,比逐行 input() 更抗输入格式变化;print 更快(组数很大时有用)。import sys
def main():
data = sys.stdin.read().strip().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()登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有