求存储在array数组中的矩阵两条对角线上元素之和。Array数组自行初始化,用Scala语言表述
时间: 2024-10-20 20:19:22 浏览: 20
在Scala中,你可以通过创建一个函数来计算给定二维数组(matrix)中主对角线和副对角线的元素之和。首先假设`array`是一个二维整数数组,我们可以这样做:
```scala
def sumDiagonalElements(array: Array[Array[Int]]): (Int, Int) = {
// 主对角线元素之和
val mainDiagonalSum = array.zipWithIndex.map { case (row, i) => row(i) }.sum
// 副对角线元素之和,如果数组是方阵,则有效,否则副对角线可能不存在
val secondaryDiagonalSum = if (array.length == array.head.length) {
array.indices.map { i =>
array(array.indices.reverse.indexOf(i)) // 反转索引找到对应的副对角线元素
}.sum
} else {
0 // 如果不是方阵,副对角线不存在
}
(mainDiagonalSum, secondaryDiagonalSum)
}
// 示例使用
val matrixExample = Array(Array(1, 2, 3), Array(4, 5, 6), Array(7, 8, 9))
val sums = sumDiagonalElements(matrixExample)
println(s"主对角线和: $sums._1, 副对角线和: $sums._2")
阅读全文