top1编程
← 返回题目
题解

矩阵相加

1 条题解

  • 0
    @ 2026-8-5 12:15:00

    解题思路

    矩阵加法怎么算?

    两个矩阵 A 和 B 都是 n 行 m 列。相加的规则非常简单:对应位置的值相加。

    也就是说,结果矩阵第 i 行第 j 列的数 = A[i][j] + B[i][j]。

    怎么用程序实现?

    1. 先读入矩阵 A,把它的所有数存进二维数组 a;
    2. 再读矩阵 B 时,可以边读边算:每读到一个 B 的元素 x,立刻输出 a[i][j] + x,这样就不需要再开一个数组存 B 了;
    3. 注意输出的格式:同一行里两个数之间用空格隔开,每输出完一行就换行。

    验证样例: A 第一行 1 2 3,B 第一行 1 2 3,相加得 2 4 6,与输出一致。

    参考代码

    // P4507 矩阵相加:A和B对应位置的值相加
    #include <iostream>
    using namespace std;
    int main() {
        int n, m, a[105][105], x;
        cin >> n >> m;
        for (int i = 0; i < n; i++)
            for (int j = 0; j < m; j++) cin >> a[i][j]; // 读入矩阵A
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                cin >> x;                          // 边读B边算
                cout << a[i][j] + x << " ";        // 对应位置相加
            }
            cout << endl;
        }
        return 0;
    }
    

    复杂度分析

    设矩阵有 n 行 m 列。

    • 时间:读入 A 要访问 n×m 个格子,读 B 和输出也各是 n×m 个格子,时间复杂度是 O(n×m);
    • 空间:需要一个 n 行 m 列的二维数组存矩阵 A,空间复杂度是 O(n×m)。
    • 1