2480: 2020年06月2级T1:计算矩阵边缘元素之和

题目描述

 2020年06月2级第一题题目:计算矩阵边缘元素之和  

输入一个整数矩阵,计算位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。

输入

第一行分别为矩阵的行数m和列数n(m < 100,n < 100),两者之间以一个空格分开。 接下来输入的m行数据中,每行包含n个整数,整数之间以一个空格分开。

输出

输出对应矩阵的边缘元素和

样例输入

复制

3 3
3 4 1
3 7 1
2 0 1
样例输出

复制

15

#include <iostream>
using namespace std;

int main() {
    int m, n;
    cin >> m >> n;

    // 初始化矩阵
    int matrix[m][n];

    // 读取矩阵元素
    for (int i = 0; i < m; ++i) {
        for (int j = 0; j < n; ++j) {
            cin >> matrix[i][j];
        }
    }

    int sum = 0;

    // 计算第一行和最后一行的元素之和
    for (int j = 0; j < n; ++j) {
        sum += matrix[0][j];       // 第一行
        if (m > 1) {
            sum += matrix[m-1][j];   // 最后一行
        }
    }

    // 计算第一列和最后一列的元素之和(不包括已经计算过的角)
    for (int i = 1; i < m - 1; ++i) {
        sum += matrix[i][0];       // 第一列
        if (n > 1) {
            sum += matrix[i][n-1];   // 最后一列
        }
    }

    cout << sum << endl;

    return 0;
}


这个程序首先读取矩阵的尺寸mn,然后读取矩阵的所有元素。接着,它计算矩阵的第一行、最后一行、第一列和最后一列的元素之和,但注意避免重复计算四个角落的元素。最后,程序输出这些边缘元素的总和。

在华为布道者1721的问题中,提到了一个关于20239月的问题,问题是关于二t1数组的部分逆序重放。 首先,二数组是指数组中每个元素仍然是一个数组的数组。而t1则指的是第一个层的数组。 那么,问题就是在20239月,对于一个二t1数组,需要进行部分逆序重放的操作。 部分逆序重放是指,对数组中的一部分元素进行逆序重排,而不改变其他元素的顺序。 具体的操作步骤如下: 1. 确定需要逆序重放的部分。在二t1数组中,我们需要确定要逆序重放的子数组的起始位置和结束位置。 2. 计算子数组的长度。通过起始位置和结束位置的索引差来确定这个长度。 3. 对子数组进行逆序重排。可以使用循环或者递归的方法来反转子数组中的元素。 4. 将逆序重排后的子数组放回原来的位置。根据起始位置和结束位置,将逆序重排后的子数组的元素放回原数组中。 通过以上步骤,就可以实现对二t1数组的部分逆序重放操作。 需要注意的是,在20239月进行这个操作时,要注意数组的索引范围以及边界条件,以避免数组越界等错误。 总结起来,1721的问题所提到的是在20239月对二t1数组进行部分逆序重放的操作。通过确定部分逆序重放的起始位置和结束位置,计算子数组的长度,对子数组进行逆序重排,再将重排后的子数组放回原数组中,就可以完成这个操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值