描述
有一个 n×n 的方阵,第 1 行、第 n 行和辅对角线共同组成一个“Z”字。请计算这个“Z”字上所有元素的和。
输入描述
第一行一个正整数 n。
接下来 n 行,每行 n 个整数,用空格隔开。
输出描述
一个整数。
样例输入 1
3
0 1 2
0 1 2
0 1 2
样例输出 1
7
样例输入 2
4
5 1 2 1
0 1 2 1
2 1 2 1
0 0 9 3
样例输出 2
24
提示
数据范围与提示
1≤n≤20,0≤数字≤9
ac代码
#include <iostream>
typedef long long Int;
constexpr Int maxn = 100, maxm = 100;
Int n, a[maxn][maxm];
int main() {
std::cin >> n;
for (Int i = 0; i < n; i++) {
for (Int j = 0; j < n; j++) {
std::cin >> a[i][j];
}
}
Int sum=0;
for(Int i=0;i<n;i++){
sum+=a[0][i];
}//下一行,j一开始写成了1,遍历时会变成这样:
j应该从尾开始for。就是这样:
然后考虑到第1和n行的末尾和头遍历过了不再遍历
for(Int i=1,j=n-2;i<n-1&&j>=0;i++,j--){
sum+=a[i][j];
}
for(Int i=0;i<n;i++){
sum+=a[n-1][i];
}
std::cout<<sum;
}