用Scala求存储在array数组中的矩阵两条对角线上元素之和。Array数组自行初始化。
时间: 2024-10-16 13:19:59 浏览: 18
在Scala中,如果你有一个二维数组(矩阵)并存储在一个`Array[Array[Int]]`类型的变量里,你可以通过遍历矩阵的对角线来计算其上和下对角线元素的总和。这里是一个简单的示例:
```scala
def sumDiagonalElements(matrix: Array[Array[Int]]) {
// 初始化两个变量分别存储上对角线和下对角线元素的和
var upperDiagonalSum = 0
var lowerDiagonalSum = 0
// 获取矩阵的行数和列数
val rows = matrix.length
val cols = matrix.head.length
// 上对角线:从左上到右下
for (i <- 0 until rows) {
if (i < cols) {
upperDiagonalSum += matrix(i)(i)
}
}
// 下对角线:从右上到左下
for (i <- rows - 1 downTo 0) {
if (i < cols - 1) {
lowerDiagonalSum += matrix(i)(cols - 1 - i)
}
}
// 返回两条对角线元素的总和
(upperDiagonalSum, lowerDiagonalSum)
}
// 示例矩阵
val myMatrix = Array(
Array(1, 2, 3),
Array(4, 5, 6),
Array(7, 8, 9)
)
// 调用函数并打印结果
val sums = sumDiagonalElements(myMatrix)
println(s"上对角线元素之和: $sums._1, 下对角线元素之和: $sums._2")
```
阅读全文