top1编程
← 返回题目
题解

求n个整数的和

1 条题解

  • 0
    @ 2026-8-4 14:03:51

    解题思路

    这道题要我们:先读入一个整数 n,再读入 n 个整数,把这 n 个整数全部加起来,输出它们的和。

    这是最经典的"累加"问题。我们用一个变量 sum(和)来记录总和,先把 sum 清成 0,就像准备一个空篮子。然后循环 n 次,每读入一个数,就把它"放进篮子"——也就是加到 sum 上。循环结束后,sum 里装的就是所有数的总和,把它输出即可。

    为什么 sum 要先清零?因为篮子在开始装东西之前必须是空的。如果不清零,sum 里会是一个不确定的"垃圾值",最后算出来的和就不对了。

    注意数据范围:最多 100 个数,每个数最大 1000,所以总和最大是 100×1000=100000,用 int 类型完全装得下,不用担心溢出。

    参考代码

    #include <iostream>
    using namespace std;
    
    int main() {
        int n;              // n:一共要读入几个数
        cin >> n;           // 读入个数 n
        int sum = 0;        // sum:累加用的和,先清成 0(空篮子)
        for (int i = 1; i <= n; i++) {   // 循环 n 次,读入 n 个数
            int x;          // x:当前读入的一个整数
            cin >> x;       // 读入这个数
            sum = sum + x;  // 把它累加到 sum 上(放进篮子)
        }
        cout << sum << endl;  // 输出 n 个数的总和
        return 0;
    }
    

    复杂度分析

    程序只做了一次循环,循环 n 次,每次做常数次操作(读入、加法),所以时间复杂度是 O(n)。这里 n 表示题目中输入整数的个数:n 越大,循环次数越多,运行时间就越长,这正是 O(n) 的含义。用到的变量只有 n、sum、i、x 这几个,个数固定,和 n 的大小无关,所以空间复杂度是 O(1)。

    • 1