C++实现方阵两条对角线元素求和
### 🌟解题思路 本题需要计算一个 `n * n` 方阵两条对角线上元素之和,且要避免重复计算两条对角线交点处的元素(当 `n` 为奇数时存在交点)。我们可以通过遍历方阵,分别累加主对角线和副对角线上的元素,最后根据 `n` 的奇偶性判断是否需要减去重复的元素。 ### 💻代码实现 ```cpp #include <iostream> using namespace std; int main() { int n; cin >> n; int matrix[100][100]; // 读取方阵元素 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> matrix[i][j]; } } int sum = 0; // 累加主对角线元素 for (int i = 0; i < n; i++) { sum += matrix[i][i]; } // 累加副对角线元素 for (int i = 0; i < n; i++) { sum += matrix[i][n - 1 - i]; } // 若 n 为奇数,减去重复的元素 if (n % 2 == 1) { sum -= matrix[n / 2][n / 2]; } cout << sum << endl; return 0; } ``` ### 📝代码解释 1. **输入处理**:首先读取方阵的阶数 `n`,然后使用二维数组 `matrix` 存储方阵的元素。 2. **主对角线元素求和**:主对角线元素的特点是行索引和列索引相等,因此可以通过 `matrix[i][i]` 来访问主对角线元素,并将其累加到 `sum` 中。 3. **副对角线元素求和**:副对角线元素的特点是行索引和列索引之和等于 `n - 1`,因此可以通过 `matrix[i][n - 1 - i]` 来访问副对角线元素,并将其累加到 `sum` 中。 4. **避免重复计算**:当 `n` 为奇数时,两条对角线的交点处的元素会被重复计算一次,因此需要减去该元素。 5. **输出结果**:最后输出两条对角线元素之和。 ### ⚙️复杂度分析 - **时间复杂度**:$O(n)$,因为只需要遍历方阵的每一行一次。 - **空间复杂度**:$O(n^2)$,主要用于存储方阵的元素。 ### 💡开发建议 - **边界条件检查**:在实际开发中,需要对输入的 `n` 进行边界检查,确保其在 `1` 到 `100` 的范围内。 - **代码可读性**:可以将计算主对角线和副对角线元素之和的逻辑封装成函数,提高代码的可读性和可维护性。 - **错误处理**:在读取输入时,需要处理可能的输入错误,例如输入的元素不是整数等。 ######[AI写代码神器 | 707点数解答 | 2026-05-08 20:49:44]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)384
- 2048位学生早会组方阵,Python编程算出最多完整行数! (DeepSeek | 234点数解答 | 2025-08-15 18:58:16)163
- 核晶学院早会方阵行数计算:Python代码及注意事项揭秘(字节豆包 | 218点数解答 | 2025-12-21 14:40:19)60
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)354
- jQuery 实现动态操作 DOM:打造可增删任务的待办事项列表应用(百度文心 | 1015点数解答 | 2024-10-26 23:41:22)454
- jQuery 打造实用待办事项列表:输入添加、点击删除一步到位!(阿里通义 | 1139点数解答 | 2024-10-29 08:44:48)371
- jQuery 实现动态操作 DOM:打造带添加与删除功能的待办事项列表应用(阿里通义 | 687点数解答 | 2024-10-29 09:25:06)383
- iOS开发:手把手教你完整实现代理模式,含声明与实现步骤!(阿里通义 | 268点数解答 | 2023-11-08 00:39:55)278
- JavaScript 开发:用 Animation 实现自定义动画的简易教程 (阿里通义 | 333点数解答 | 2023-11-09 01:50:07)271
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)501
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)389
- Vue.js 与 Matter.js 碰撞:轻松实现物理模拟全攻略 (讯飞星火 | 522点数解答 | 2024-05-29 22:26:06)455