求存储在array数组中的矩阵两条对角线上元素之和。Array数组自行初始化。scala编程
时间: 2024-09-24 21:29:32 浏览: 43
Scala编程详解 第9讲-Scala编程详解:数组操作之Array、ArrayBuffer以及遍历数组 共7页.pptx
在Scala中,如果你有一个二维数组(矩阵)存储在`Array`类型的`Array`(也就是嵌套数组)里,你可以通过遍历这个数组并分别计算主对角线(从左上到右下)和副对角线(从右上到左下)上的元素之和。这里是一个简单的示例:
```scala
import scala.collection.mutable
def sumDiagonals(matrix: Array[Array[Int]]): (Int, Int) = {
// 主对角线索引
var mainDiagonalSum = 0
// 副对角线索引
var secondaryDiagonalSum = 0
// 遍历矩阵
for (i <- matrix.indices; j <- i until matrix(i).length) { // 主对角线
mainDiagonalSum += matrix(i)(j)
}
for (i <- matrix.indices; j <- 0 until i) { // 副对角线
secondaryDiagonalSum += matrix(i)(j)
}
// 返回结果元组
(mainDiagonalSum, secondaryDiagonalSum)
}
// 示例矩阵
val matrixExample = Array(
Array(1, 2, 3),
Array(4, 5, 6),
Array(7, 8, 9)
)
// 计算并打印对角线和
val result = sumDiagonals(matrixExample)
println(s"主对角线之和: $result._1, 副对角线之和: $result._2")
阅读全文