题目:
给定一个 n ∗ m 的矩阵 A,询问位于矩阵边缘的元素之和。所谓矩阵边缘的元素,就是第一行和
最后一行的元素以及第一列和最后一列的元素。
输入:
第一行包含两个整数 n 和 m。
之后 n 行每行包含 m 个整数 Ai,j。
输出:
共一行包含一个整数 ans,表示位于矩阵边缘的元素之和。
样例输入:
3 3
3 4 1
3 7 1
2 0 1
样例输出:
15
思路:
直接模拟,求外面那一圈。
注意:
如果你要用数组,记得去掉四个角重复的
代码:
#include<cstdio>
#include<iostream>
using namespace std;
int n,m,x,ans;
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
scanf("%d",&x);
if (i==1||j==1||i==n||j==m) //条件(是外面那一圈)
ans=ans+x;//就把当前的数加进去
}
printf("%d",ans);//输出
}
本文介绍了一种求解矩阵边缘元素之和的算法。针对给定的n*m矩阵A,算法通过一次遍历,利用条件判断筛选出矩阵的第一行、最后一行、第一列和最后一列的元素,同时注意避免四角元素的重复计算,最终得出边缘元素的总和。
1009

被折叠的 条评论
为什么被折叠?



