Dada una matriz cuadrada de tamaño n×n, implemente la función en C++:
que devuelve el vector de 2n−1 elementos que contiene la suma de
las diagonales (o de las anti-diagonales) de la matriz.
El booleano diagonal determina si se desea la suma de las diagonales (cierto)
o de las antidiagonales (falso).
Por ejemplo, para la matriz:
1 2 3 4 5 6 7 8 9
La suma de la primera diagonal es 7, la de la segunda 4+8=12, la tercera 1+5+9=15, la cuarta 2+6=8 y la quinta 3. Por tanto, el vector obtenido cuando el booleano es cierto es: 7 12 15 8 3
Si el booleano fuera falso y sumamos las antidiagonales, obtendremos 1 para la primera, 2+4=6 para la segunda, 3+5+7=15 para la tercera, 6+8=14 para la cuarta, y 9 para la última, y el resultado de la función sería el vector: 1 6 15 14 9
Observación Sólo tenéis que enviar el procedimiento requerido; el programa principal será ignorado.
n: 3 A: 1 2 3 4 5 6 7 8 9 Call: suma_diagonal(A, true) Result: 7 12 15 8 3 Call: suma_diagonal(A, false) Result: 1 6 15 14 9