
I Got a Matrix!
读取输入:首先读取矩阵的行数 n 和列数 m,然后读取矩阵中的元素。 初始化结果变量:初始化一个变量来存储边缘元素的和。 处理特殊情况:当矩阵只有一个行或一个列时,直接将所有元素相加。 遍历边缘元素: 输出结果:将计算结果输出。 读取输入:使用 初始化结果变量: 处理特殊情况:当矩阵只有一个行时,直接遍历该行所有元素并求和。 遍历边缘元素: 输出结果:将计算结果输出。
发布日期:2021-05-07 07:04:48
浏览次数:27
分类:精选文章
本文共 1785 字,大约阅读时间需要 5 分钟。
为了解决这个问题,我们需要计算一个 n 行 m 列矩阵边缘元素的和。边缘元素包括第一行、最后一行、第一列和最后一列的元素。为了避免重复计算四个角的元素,我们需要特别处理这些情况。
方法思路
- 如果矩阵有多行多列,遍历第一行和最后一行的所有元素。
- 遍历中间行的第一列和最后一列的元素,避免重复计算四个角的元素。
解决代码
I Got a Matrix!
题目
给定一个 n ∗ m 的矩阵 A,询问位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。
输入
第一行包含两个整数 n 和 m。
之后 n 行每行包含 m 个整数 Ai,j。输出
共一行包含一个整数 ans,表示位于矩阵边缘的元素之和。
输入样例
3 33 4 13 7 12 0 1输出样例
15数据范围
对于 100% 的数据:n, m ≤ 100
思路
这道题就是一道模拟题,我们枚举矩阵的边,在一个一个加起来就可以了。
不过我这里要处理一下行数为一的情况。因为我是上下边缘一起加,但是当行数为一时,一起加的时候边缘就会多加一次,所以这里加了一个特判。 还有一点就是,因为如果直接枚举矩阵的左右边缘和上下边缘,矩阵的四个角就会各多加一次。所以我在这里枚举矩阵的左右边缘时,忽略掉矩阵的四个角。代码
#includeusing namespace std;int main() { int n, m; scanf("%d %d", &n, &m); int a[101][101]; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { scanf("%d", &a[i][j]); } } int ans = 0; if (n == 1) { for (int j = 1; j <= m; j++) { ans += a[1][j]; } } else { for (int j = 1; j <= m; j++) { ans += a[1][j]; } for (int j = 1; j <= m; j++) { ans += a[n][j]; } for (int i = 2; i <= n - 1; i++) { ans += a[i][1] + a[i][m]; } } printf("%d", ans); return 0;} ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
代码解释
scanf
读取矩阵的行数 n 和列数 m,然后读取矩阵中的元素。ans
初始化为 0,用于存储边缘元素的和。- 遍历第一行和最后一行的所有元素。
- 遍历中间行的第一列和最后一列的元素,避免重复计算四个角的元素。
这种方法确保了我们正确地计算了矩阵边缘元素的和,避免了重复计算四个角的元素,适用于不同大小的矩阵。
发表评论
最新留言
很好
[***.229.124.182]2025年04月05日 01时07分14秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
.NetCore外国一些高质量博客分享
2019-03-06
Mysql的基本操作(一)增、删、改
2019-03-06
解决WebRTC中不同的浏览器之间适配的问题
2019-03-06
python中while循环和for循环的定义和详细的使用方法
2019-03-06
HTML5 之拖放(drag与drop)
2019-03-06
软件项目技术点(2)——Canvas之坐标系转换
2019-03-06
深入理解JavaScript函数
2019-03-06
!function(){}()
2019-03-06
【spring源码系列】之【xml解析】
2019-03-06
用了这个jupyter插件,我已经半个月没打开过excel了
2019-03-06
(在模仿中精进数据可视化07)星球研究所大坝分布可视化
2019-03-06
(数据科学学习手札112)Python+Dash快速web应用开发——表单控件篇(上)
2019-03-06
(数据科学学习手札02)Python与R在循环语句与条件语句上的异同
2019-03-06
(数据科学学习手札06)Python在数据框操作上的总结(初级篇)
2019-03-06
(数据科学学习手札23)决策树分类原理详解&Python与R实现
2019-03-06
(数据科学学习手札27)sklearn数据集分割方法汇总
2019-03-06
(数据科学学习手札40)tensorflow实现LSTM时间序列预测
2019-03-06
[整理] 哪些集合类是线程安全的?(Java)
2019-03-06
[整理] UML的各种图总结
2019-03-06
8 个警示和学习的 5 个阶段
2019-03-06