C++求解n阶方阵对角线元素之和(避免重复计算)
根据题目要求,需要计算n阶方阵两条对角线元素之和,并且同一元素(即中心元素,当n为奇数时)不要重复计算。下面给出C++实现代码。 💻 **C++代码实现** ```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]; } } long long sum = 0; for (int i = 0; i < n; i++) { sum += matrix[i][i]; // 主对角线 sum += matrix[i][n - 1 - i]; // 副对角线 } if (n % 2 == 1) { // 如果n为奇数,中心元素被加了两次,需减去一次 sum -= matrix[n / 2][n / 2]; } cout << sum << endl; return 0; } ``` 🔍 **代码说明** - 使用二维数组存储方阵,大小最大为100×100。 - 主对角线元素坐标满足 `i == j`,副对角线元素坐标满足 `j == n-1-i`。 - 在循环中同时累加两条对角线元素,但这样中心元素(当`n`为奇数时,坐标为`(n/2, n/2)`)会被重复计算两次,因此最后减去一次。 - 结果用`long long`类型存储,防止溢出(元素最大32767,n最大100,总和不超过约32767*200 ≈ 6.5e6,int足够,但long long更安全)。 🧪 **测试示例** 输入: ``` 3 1 2 3 4 5 6 7 8 9 ``` 输出: ``` 25 ``` 解释:主对角线 1+5+9=15,副对角线 3+5+7=15,总和30,减去中心5,得25。 ######[AI问答 | 476点数解答 | 2026-08-21 19:18:57]
- 2048位学生早会组方阵,Python编程算出最多完整行数! (DeepSeek | 234点数解答 | 2025-08-15 18:58:16)217
- 核晶学院早会方阵行数计算:Python代码及注意事项揭秘(字节豆包 | 218点数解答 | 2025-12-21 14:40:19)108
- jQuery 实现动态操作 DOM:打造可增删任务的待办事项列表应用(百度文心 | 1015点数解答 | 2024-10-26 23:41:22)520
- jQuery 打造实用待办事项列表:输入添加、点击删除一步到位!(阿里通义 | 1139点数解答 | 2024-10-29 08:44:48)442
- jQuery 实现动态操作 DOM:打造带添加与删除功能的待办事项列表应用(阿里通义 | 687点数解答 | 2024-10-29 09:25:06)452
- Python程序:多人物9参数雷达图生成,参数折合百分制展示(字节豆包 | 873点数解答 | 2026-01-11 21:07:42)96
- C++实现多对象9参数雷达图绘制:输入满值后自动折合百分制(字节豆包 | 801点数解答 | 2026-01-11 21:09:16)100
- Python实现:多人员9参数雷达图生成程序,自由添加人员并折算分数(字节豆包 | 467点数解答 | 2026-01-11 21:10:04)71
- C++ 代码实现自定义运算 x@y = x² + y² - xy 及 x@(x+y) 计算(DeepSeek | 215点数解答 | 2025-12-13 15:08:14)185
- C++ 实现根据输入正整数奇偶性计算偶数和或约数和(字节豆包 | 838点数解答 | 2026-02-28 20:23:59)163
- 解决代码WA问题:修改整数溢出问题后的计算代码(字节豆包 | 749点数解答 | 2026-05-10 16:20:03)99
- 修正代码解决计算 f(l, r) 和出现的 WA 问题(字节豆包 | 806点数解答 | 2026-05-10 16:21:37)92