JavaScript 找出两个对角线之和的差
我们将找到一个方阵两个对角线之和的差。首先,我们将通过从左上角开始遍历矩阵到右下角,计算出第一个对角线上元素的和。其次,我们将通过从右上角开始遍历矩阵到左下角,计算出第二个对角线上元素的和。最后,我们将第二个对角线的和减去第一个对角线的和,得到两个对角线之间的差异。
方法
- 要找出方阵两个对角线之和的差,第一步是定义一个函数,该函数将矩阵作为输入。
-
接下来,需要循环遍历矩阵,并计算出第一个对角线上元素的和(从左上角到右下角)。
-
类似地,计算出第二个对角线上元素的和(从右上角到左下角)。
-
将第二个对角线的和从第一个对角线的和中减去,并将结果存储在一个变量中。
-
返回结果变量,该变量将是方阵两个对角线之和的差异。
示例
以下是一个JavaScript程序,用于找到一个矩阵两个对角线之和的差异−
function diagonalDifference(arr) {
let leftToRightDiagonalSum = 0;
let rightToLeftDiagonalSum = 0;
let matrixSize = arr.length;
for (let i = 0; i < matrixSize; i++) {
leftToRightDiagonalSum += arr[i][i];
rightToLeftDiagonalSum += arr[i][matrixSize - 1 - i];
}
return Math.abs(leftToRightDiagonalSum - rightToLeftDiagonalSum);
}
let matrix = [[1, 2, 3], [4, 5, 6], [9, 8, 9]];
console.log(diagonalDifference(matrix));
解释
- 函数 diagonalDifference 将一个二维数组(矩阵)作为参数。
-
声明了两个变量 leftToRightDiagonalSum 和 rightToLeftDiagonalSum 用于存储从左上到右下对角线和从右上到左下对角线的和。
-
矩阵的大小存储在变量 matrixSize 中。
-
使用for循环遍历矩阵。在每次迭代中,将矩阵中的当前值添加到两个对角线的和中。
-
计算从左上到右下对角线的和,将行和列中相同位置的值添加到 leftToRightDiagonalSum 中。
-
计算从右上到左下对角线的和,将行中与列相同位置的值从 matrixSize – 1 中减去。这是因为从右上到左下的对角线与从左上到右下对角线方向相反。
-
使用 Math.abs 函数计算两个对角线和的绝对差,并将其作为结果返回。
-
声明了一个示例矩阵并将其传递给 diagonalDifference 函数,将结果记录到控制台。
此程序的输出应为2,即示例矩阵的两条对角线之和的差值。