week5-[二維數組]對角線
題目描述
給定一個 n×nn\times nn×n 的正方形二維數組,輸出它兩條對角線上元素的和。
輸入格式
輸入共 n+1n + 1n+1 行。
第 111 行 111 個正整數 nnn。
接下來 nnn 行,每行 nnn 個正整數 aija_{ij}aij? 表示這個二維數組。
輸出格式
輸出共 111 行 111 個正整數表示答案。
樣例 #1
樣例輸入 #1
4
1 2 3 4
5 6 7 8
9 8 7 6
4 5 2 1
樣例輸出 #1
38
樣例 #2
樣例輸入 #2
3
1 2 3
4 5 6
4 3 2
樣例輸出 #2
15
提示
樣例解釋 222
1+5+2+3+4=151+5+2+3+4=151+5+2+3+4=15。中心的那個 555 不能計算兩次。
數據范圍
對于所有數據,1≤n,aij≤1001 \leq n,a_{ij}\leq 1001≤n,aij?≤100。
思路
- 輸入 nnn,再讀入 n×nn \times nn×n 的矩陣;
- 累加主對角線元素;
- 累加副對角線元素;
- 如果 nnn 是奇數,減去中心元素一次。
參考代碼(C++)
#include <bits/stdc++.h>
using namespace std;int main() {int n;cin >> n;int a[110][110];for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)cin >> a[i][j];int sum = 0;for (int i = 0; i < n; i++) {sum += a[i][i]; // 主對角線sum += a[i][n - 1 - i]; // 副對角線}if (n % 2 == 1) {sum -= a[n / 2][n / 2]; // 中心元素減去一次}cout << sum << "\n";return 0;
}