A+B Problem

GitHub跳转原题关系图返回列表

读取两个整数,用 Python 的大整数直接相加输出。

OJ: luogu

题目 ID: P1001

难度:入门

标签:python入门输入输出

日期: 2026-07-15 17:50

题意

输入两个整数 a,ba,b,输出它们的和 a+ba+b。数据范围包含负数,绝对值不超过 10910^9

思路

这题的计算只有一步:读入两个整数,相加后输出。算法上没有优化空间,重点是把输入中的字符串转换为整数。

brute.py 不适合这题,因为朴素做法和最终做法完全相同;再写一个暴力版本只会重复代码。

Python 知识

  • sys.stdin.read() 可以一次读完整份输入。
  • split() 会按空白字符切分,所以输入写成一行或多行都能得到两个 token。
  • map(int, ...) 把字符串 token 转为整数。
  • Python 的 int 是任意精度整数,本题范围内不需要担心溢出。

对应的本地 Python 笔记:

  • /home/rainboy/mycode/hugo-blog/content/program_language/python/input_output_and_strings.md:一行多个整数、按 token 读取整份输入。
  • /home/rainboy/mycode/hugo-blog/content/program_language/python/oj_input_output_cheatsheet.md:固定数量整数的读入模板。

代码

python
import sys

a, b = map(int, sys.stdin.read().split())
print(a + b)
cpp
/**
 * Author by Rainboy blog: https://rainboylv.com github: https://github.com/rainboylvx
 * rbook: -> https://rbook.roj.ac.cn  https://rbook2.roj.ac.cn
 * rainboy的学习导航网站: https://idx.roj.ac.cn
 * create_at: 2026-07-27 00:00
 * update_at: 2026-07-27 00:00
 */

#include <bits/stdc++.h>
using namespace std;

int main() {
    int a, b; // 两个加数
    cin >> a >> b;
    // 直接相加输出
    cout << a + b << endl;
    return 0;
}

Pythonic 写法

sum+map:

python
print(sum(map(int, open(0).read().split())))

复杂度

只读取和处理两个整数,时间复杂度 O(1)O(1),空间复杂度 O(1)O(1)

总结

Python OJ 入门时先记住这条线:读入文本、切分 token、转换成整数、输出答案。本题就是这条线的最小版本。