Dada una matriz cuadrada de tamaño , implemente la función en C++:
vector<int> suma_diagonal(const vector<vector<int>>& A, bool diagonal)
que devuelve el vector de
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
,
la de la segunda
,
la tercera
,
la cuarta
y la quinta
.
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
para la primera,
para la segunda,
para la tercera,
para la cuarta, y
para la última, y el resultado de la función sería el vector:
1 6 15 14 9
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