【题目链接】

ybt 1121:计算矩阵边缘元素之和
OpenJudge NOI 1.8 03:计算矩阵边缘元素之和

【题目考点】

1. 二维数组

【解题思路】

解法1:遍历外圈

  • 一个m行n列的矩阵,其边缘元素分别为:第1行,最后一行(第m行),第1列,最后一列(第n列)。
  • 行和列之间有交点,交点在矩阵的四个角。所以在遍历第1行,第m行元素后,在遍历列元素时,从第2行遍历到第n-1行,避开矩阵四角的位置。这样就避免了重复计算。
  • 矩阵若只有1行,那么第1行和第m行只需要加一次。矩阵若只有1列,第1列和第n列只需要加一次。

解法2:遍历矩阵

遍历整个矩阵,选择其中满足条件的元素进行相加

【题解代码】

解法1:遍历外圈

#include<bits/stdc++.h>
using namespace std;
int main()
{int a[101][101], m, n, sum = 0;//m行n列cin >> m >> n;for(int i = 1; i <= m; ++i)for(int j = 1; j <= n; ++j)cin >> a[i][j];for(int i = 1; i <= m; ++i)//第1列和第n列加和{sum += a[i][1];if(n != 1)//如果矩阵不是只有1列sum += a[i][n];}for(int j = 2; j <= n - 1; ++j)//第1行和第m行,除去两端元素后,加和{sum += a[1][j];if(m != 1)//如果矩阵不是只有1行sum += a[m][j];}cout << sum;return 0;
}

解法2:遍历矩阵

#include<bits/stdc++.h>
using namespace std;
int main()
{int m, n, a[105][105], s = 0;cin >> m >> n;for(int i = 1; i <= m; i++)for(int j = 1; j <= n; ++j){   cin >> a[i][j];if(i == 1 || i == m || j == 1 || j == n)s += a[i][j];}cout << s;return 0;
}

信息学奥赛一本通 1121:计算矩阵边缘元素之和 | OpenJudge NOI 1.8 03:计算矩阵边缘元素之和相关推荐

  1. 信息学奥赛一本通 1041:奇偶数判断 | OpenJudge NOI 1.4 03

    [题目链接] ybt 1041:奇偶数判断 OpenJudge NOI 1.4 03:奇偶数判断 [题目考点] 1. if-else语句 2. 三目运算符?: 3. 判断奇数偶数 数a如果是奇数,则有 ...

  2. 信息学奥赛一本通 1404:我家的门牌号 | OpenJudge NOI 2.1 7649:我家的门牌号 | 小学奥数 7649

    [题目链接] ybt 1404:我家的门牌号 OpenJudge NOI 2.1 7649:我家的门牌号 OpenJudge NOI 小学奥数 7649:我家的门牌号 注意:一本通OJ和OpenJud ...

  3. 信息学奥赛一本通 1227:Ride to Office | OpenJudge NOI 4.6 2404:Ride to Office

    [题目链接] ybt 1227:Ride to Office OpenJudge NOI 4.6 2404:Ride to Office 原题是英文题,虽说两题题意相同,但一本通网站没有对该问题进行直 ...

  4. 信息学奥赛一本通 1067:整数的个数 | OpenJudge NOI 1.5 11

    [题目链接] ybt 1067:整数的个数 OpenJudge NOI 1.5 11:整数的个数 [题目考点] 1. 循环统计 2. (扩展)散列表 [题解代码] 解法1:用if语句 #include ...

  5. 信息学奥赛一本通 1050:骑车与走路 | OpenJudge NOI 1.4 12

    [题目链接] ybt 1050:骑车与走路 OpenJudge NOI 1.4 12:骑车与走路 [题目考点] 1. 两浮点型量判断相等 由于浮点型量在内存中以二进制形式表示,很多数据并不能精确表示( ...

  6. 信息学奥赛一本通 1038:苹果和虫子 | OpenJudge NOI 1.3 15 | OpenJudge NOI 1.4 21

    [题目链接] ybt 1038:苹果和虫子 OpenJudge NOI 1.3 15:苹果和虫子 OpenJudge NOI 1.4 21:苹果和虫子2 [题目考点] 1. if-else语句 if( ...

  7. 信息学奥赛一本通 1013:温度表达转化 | OpenJudge NOI 1.3 08

    [题目链接] ybt 1013:温度表达转化 OpenJudge NOI 1.3 08:温度表达转化 [题目考点] 1. 书写计算表达式 了解* /的优先级高于+ - 了解()可以改变运算优先级 2. ...

  8. 信息学奥赛一本通 1229:电池的寿命 | OpenJudge NOI 4.6 2469:电池的寿命

    [题目链接] ybt 1229:电池的寿命 OpenJudge NOI 4.6 2469:电池的寿命 [题目考点] 1. 贪心 [解题思路] 1. 贪心选择性质的证明 电池分配主要有两步, 第一步:将 ...

  9. 信息学奥赛一本通 1181:整数奇偶排序 | OpenJudge NOI 1.10 06:整数奇偶排序

    [题目链接] ybt 1181:整数奇偶排序 OpenJudge NOI 1.10 06:整数奇偶排序 [题目考点] 1. 排序 [君义精讲]排序算法 [解题思路] 解法1:将奇数和偶数分开,分别排序 ...

最新文章

  1. MyBatis-08MyBatis注解方式之@Insert
  2. [Machine Learning] logistic函数和softmax函数
  3. vim的tab键设定
  4. switch中case后可以是表达式吗_Java中的 quot;如果,那么quot; 怎么表达?
  5. LightGBM参数调优代码详解
  6. 阶段1 语言基础+高级_1-3-Java语言高级_08-JDK8新特性_第3节 两种获取Stream流的方式_1_两种获取Stream流的方式...
  7. iOS:copy的本质
  8. 澜沧江某水电站下坝址坝址初步设计
  9. Java实现UDP功能
  10. 整理几款实用javascript富文本编辑器
  11. PCA9685 多舵机控制器的编程
  12. Java方法——方法的重载
  13. 用MACD决策树模型预测股票趋势
  14. HBase Shell常用命令
  15. 5.服务网关:GateWay
  16. 微信公众号留言功能实现方法分享
  17. 【注意】这款Python快递查询小系统超级好用:不信你自己试试?
  18. KTorrent for KDE 4 已抵达
  19. CentOS 8安装Python3.7.0
  20. C语言文件操作实例代码

热门文章

  1. 华为的数字化转型与数据治理
  2. Cortex-M3 NVIC与中断控制
  3. 三年Java,真的卷不动了……
  4. 这 5 条 IntelliJ IDEA 调试技巧太强了!
  5. 程序员想知道代码是怎样跑起来的
  6. SOLID 原则的可靠指南
  7. XFire WebService开发快速起步
  8. Linux进程管理(第二版) --计划任务
  9. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理
  10. Linux运维-day3