T612223 Z字上的数字和
Z字上的数字和解题思路
解题思路
-
理解Z字形构成:
-
第一行所有元素
-
最后一行所有元素
-
辅对角线(从右上到左下的对角线)所有元素
-
需要减去重复计算的元素(第一行最后一个元素和最后一行第一个元素)
-
-
计算步骤:
-
先计算第一行和最后一行的所有元素和
-
再加上辅对角线上的所有元素
-
最后减去重复计算的两个交点元素
-
-
实现方法:
-
使用三重循环分别计算这三部分的和
-
注意避免重复计算交点元素
-
代码注释
#include<bits/stdc++.h> using namespace std; int n; // 定义矩阵大小n int a[101][101]; // 定义足够大的矩阵(题目n≤20,但定义稍大更安全) int main() { // 读取矩阵大小n cin >> n; // 读取n×n矩阵 for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++) cin >> a[i][j]; // 将输入存入数组a int sum = 0; // 初始化总和 // 计算第一行和最后一行的和 for(int j = 1; j <= n; j++) sum += a[1][j] + a[n][j]; // 累加第一行和最后一行 // 计算辅对角线的和(从右上到左下) for(int i = 1; i <= n; i++) sum += a[i][n - i + 1]; // 辅对角线元素行号+列号=n+1 // 减去重复计算的两个交点元素 sum = sum - a[1][n] - a[n][1]; // 第一行最后一个和最后一行第一个 // 输出最终结果 cout << sum; return 0; // 程序正常结束 }

浙公网安备 33010602011771号