object DiagonalSum {
def sumDiagonals(matrix: Array[Array[Int]], rows: Int, cols: Int): Int = {
var sumDiagonalLeft = 0
var sumDiagonalRight = 0
for (i <- 0 until rows) {
for (j <- 0 until cols) {
if (i == j) {
sumDiagonalLeft += matrix(i)(j)
}
if ((i + j) == (rows - 1)) {
sumDiagonalRight += matrix(i)(j)
}
}
}
println(s"sumDiagonalLeft = $sumDiagonalLeft")
println(s"sumDiagonalRigth = $sumDiagonalRight")
sumDiagonalLeft + sumDiagonalRight
}
def main(args: Array[String]): Unit = {
val matrix = Array(
Array(1, 2, 3, 4, 0),
Array(5, 6, 100, 8, 1),
Array(2, 100, 8, 100, 3),
Array(1, 7, 100, 9, 6),
Array(9, 10, 11, 12, 13)
)
// sumDiagonalLeft = (1 + 6 + 8 + 9 + 13) = 37
// sumDiagonalRigth = (0 + 8 + 8 + 7 + 9) = 32
// 37 + 32 = 69
val rows = matrix.length
val cols = matrix(0).length
println(sumDiagonals(matrix, rows, cols))
}
}
/*
run:
sumDiagonalLeft = 37
sumDiagonalRigth = 32
69
*/