Run ID:77720

提交时间:2024-06-15 11:33:18

#include <iostream> #include <vector> using namespace std; int main() { int N; cin >> N; // 读取矩阵的大小 // 创建一个N×N的二维vector来存储矩阵 vector<vector<int>> matrix(N, vector<int>(N)); // 读取矩阵中的元素 for (int i = 0; i < N; ++i) { for (int j = 0; j < N; ++j) { cin >> matrix[i][j]; } } // 初始化对角线之和为0 int sum = 0; // 计算主对角线之和(i == j) for (int i = 0; i < N; ++i) { sum += matrix[i][i]; } // 计算副对角线之和(i + j == N - 1) for (int i = 0; i < N; ++i) { sum += matrix[i][N - 1 - i]; } // 因为副对角线上的元素被加了两次(除了中间的元素,如果n是奇数),所以需要减去中间的元素(如果n是奇数) if (N % 2 != 0) { sum -= matrix[N / 2][N / 2]; } // 输出对角线之和 cout << sum << endl; return 0; }