求矩阵两条对角线上元素之和JS
时间: 2023-05-25 07:01:51 浏览: 85
可以使用以下代码来求解矩阵两条对角线上元素之和:
```javascript
function diagonalSum(matrix) {
let sum = 0;
for(let i = 0; i < matrix.length; i++) {
sum += matrix[i][i]; // 左上到右下的对角线上的元素
sum += matrix[i][matrix.length - i - 1]; // 右上到左下的对角线上的元素
}
if(matrix.length % 2 === 1) { // 如果矩阵是奇数阶,则中间的元素会被重复计算,在此处减去
sum -= matrix[Math.floor(matrix.length/2)][Math.floor(matrix.length/2)];
}
return sum;
}
// 测试
const matrix = [
[1,2,3],
[4,5,6],
[7,8,9]
];
console.log(diagonalSum(matrix)); // 输出 25,因为左上到右下的对角线上元素之和为 1+5+9=15,右上到左下的对角线上元素之和为 3+5+7=15,总和为 25。
```
在上述代码中,`matrix` 是一个二维数组,函数 `diagonalSum` 的实现逻辑是先累加左上到右下的对角线上的元素,然后累加右上到左下的对角线上的元素,最后返回这两个和的总和即可。同时,如果矩阵是奇数阶,则中间的元素会被重复计算,需要将其减去。
相关问题
求矩阵两条对角线上元素之和js
以下是求矩阵两条对角线上元素之和的 JavaScript 代码:
```javascript
function diagonalSum(matrix) {
let sum = 0;
for (let i = 0; i < matrix.length; i++) {
sum += matrix[i][i]; // 加上主对角线上的元素
sum += matrix[i][matrix.length - 1 - i]; // 加上副对角线上的元素
}
return sum;
}
```
使用示例:
```javascript
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
console.log(diagonalSum(matrix)); // 输出 25,即 1 + 5 + 9 + 3 + 7
```
解释:
这里使用了双层循环来遍历矩阵的每个元素,其中 `i` 是行号和列号的通用变量。主对角线上的元素有一个特征,即它们的行号和列号相等,可以通过 `matrix[i][i]` 来访问;副对角线上的元素有另一个特征,即它们的行号和列号之和等于矩阵长度减一,可以通过 `matrix[i][matrix.length - 1 - i]` 来访问。最后将它们的和作为函数的返回值。
编写JavaScript代码,实现求一个3×3矩阵的两条对角线元素之和。注意:两条对角线交叉点的元素之计算一次。js
代码如下:
```
var matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
var sum1 = 0;
var sum2 = 0;
for (var i = 0; i < matrix.length; i++) {
// 计算第一条对角线的和
sum1 += matrix[i][i];
// 计算第二条对角线的和
sum2 += matrix[i][matrix.length - i - 1];
}
// 输出结果
console.log("第一条对角线和为:" + sum1);
console.log("第二条对角线和为:" + sum2);
```
阅读全文