给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。 输入格式: 输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。 输出格式: 在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。 输入样例: 4 2 3 4 1 5 6 1 1 7 1 8 1 1 1 1 1 输出样例: 35
时间: 2023-05-31 20:18:03 浏览: 1141
### 回答1:
题目描述
给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。副对角线为从矩阵的右上角至左下角的连线。
输入格式:
输入第一行给出正整数n(1<n≤10);随后n行,每行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
输入样例:
4
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
输出样例:
35
算法1
(暴力枚举) $O(n^2)$
时间复杂度
参考文献
python3 代码
C++ 代码
算法2
(暴力枚举) $O(n^2)$
blablabla
时间复杂度
参考文献
C++ 代码
### 回答2:
题目描述
给定一个 $n\times n$ 的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
副对角线为从矩阵的右上角至左下角的连线。
输入格式:
输入第一行给出正整数 $n(1<n≤10)$;随后 $n$ 行,每行给出 $n$ 个整数,其间以空格分隔。
输出格式:
在一行中给出该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
输入样例:
4
2 3 4 1
5 6 1 1
7 1 8 1
1 1 1 1
输出样例:
35
算法1
利用方阵元素下标的特性,规整求和。
时间复杂度
$\mathcal{O}(n^2)$
C++ 代码
算法2
使用邻接表存储图。
时间复杂度
$\mathcal{O}(m)$
C++ 代码
### 回答3:
本题要求计算一个 $n\times n$ 的矩阵中除了副对角线、最后一列和最后一行以外的所有元素之和。我们可以用两个循环遍历矩阵,计算需要求和的元素之和。具体来说,代码如下:
```python
n = int(input())
matrix = []
for i in range(n):
row = list(map(int, input().split()))
matrix.append(row)
sum = 0
for i in range(n):
for j in range(n):
if (i+j != n-1) and (i != n-1) and (j != n-1):
sum += matrix[i][j]
print(sum)
```
首先读入输入的 $n$ 和矩阵的元素,并保存在二维列表 `matrix` 中。然后用双重循环遍历矩阵的所有元素,加上需要求和的元素即可。其中,判断一个元素是否需要求和的条件是其不在副对角线上,且不在最后一行或最后一列上。最后输出求和的结果。
需要注意的是,在 Python 中,内置函数 `sum` 不能作为变量名,因此不能直接使用 `sum` 保存求和的结果,需要使用其他的变量名。
阅读全文