我們將求方陣的兩條對(duì)角線之和之間的差。首先,我們將通過(guò)從左上角到右下角遍歷矩陣來(lái)計(jì)算第一條對(duì)角線中存在的元素的總和。其次,我們將通過(guò)從右上角到左下角遍歷矩陣來(lái)計(jì)算第二對(duì)角線中存在的元素的總和。最后,我們用第一條對(duì)角線的和減去第二條對(duì)角線的和,得到兩條對(duì)角線之間的差。
方法
要求方陣的兩條對(duì)角線之和之間的差,第一步是定義一個(gè)將矩陣作為輸入的函數(shù)。
接下來(lái),您需要循環(huán)遍歷矩陣并計(jì)算第一個(gè)對(duì)角線(從左上到右下)中存在的元素之和。
類(lèi)似地,計(jì)算第二個(gè)對(duì)角線(從右上到左下)中存在的元素的總和
用第一個(gè)對(duì)角線和減去第二個(gè)對(duì)角線和并將結(jié)果存儲(chǔ)在變量中。
返回結(jié)果變量,即方陣兩條對(duì)角線之和的差。
示例
這是一個(gè) JavaScript 程序,用于計(jì)算矩陣兩條對(duì)角線之和之間的差異 –
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));
登錄后復(fù)制
說(shuō)明
函數(shù)diagonalDifference采用二維數(shù)組(矩陣)作為參數(shù)。
聲明兩個(gè)變量leftToRightDiagonalSum和rightToLeftDiagonalSum分別用于存儲(chǔ)從左到右對(duì)角線和從右到左對(duì)角線的總和。
矩陣的大小存儲(chǔ)在matrixSize變量中。
for 循環(huán)用于迭代矩陣。在每次迭代中,矩陣中的當(dāng)前值都會(huì)添加到兩條對(duì)角線的總和中。
要計(jì)算從左到右的對(duì)角線和,請(qǐng)將行和列中相同位置的值添加到 leftToRightDiagonalSum。
要計(jì)算從右到左的對(duì)角線總和,需要從 matrixSize – 1 中減去行中與列相同位置的值。 這是因?yàn)閺挠业阶?左對(duì)角線與從左到右對(duì)角線的方向相反。
使用 Math.abs 函數(shù)計(jì)算兩個(gè)對(duì)角線和之間的絕對(duì)差并作為結(jié)果返回。
聲明示例矩陣并將其傳遞給 diagonalDifference 函數(shù),并將結(jié)果記錄到控制臺(tái)。
這個(gè)程序的輸出應(yīng)該是2,它是樣本矩陣的兩條對(duì)角線之和的差。
以上就是JavaScript 程序查找兩條對(duì)角線之和之間的差異的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注www.92cms.cn其它相關(guān)文章!






