Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
108987 | 汤奕硕 | 对角线之和 | C++ | Accepted | 1 MS | 272 KB | 982 | 2025-01-23 21:14:29 |
#include <iostream> using namespace std; int main() { int n; cin >> n; // 读取输入的正整数n int matrix[n][n]; // 定义一个n×n的矩阵 // 读取矩阵的元素 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> matrix[i][j]; } } // 计算主对角线的和 int main_diagonal_sum = 0; for (int i = 0; i < n; i++) { main_diagonal_sum += matrix[i][i]; } // 计算副对角线的和 int secondary_diagonal_sum = 0; for (int i = 0; i < n; i++) { secondary_diagonal_sum += matrix[i][n-1-i]; } // 计算对角线之和 int diagonal_sum = main_diagonal_sum + secondary_diagonal_sum; // 如果n是奇数,中间的元素被计算了两次,需要减去一次 if (n % 2 == 1) { diagonal_sum -= matrix[n/2][n/2]; } cout << diagonal_sum << endl; // 输出对角线之和 return 0; }