Donada una matriu quadrada de mida , implementeu la funció en C++:
vector<int> suma_diagonal(const vector<vector<int>>& A, bool diagonal)
que retorna el vector de
elements que conté la suma de les diagonals (o de les anti-diagonals) de
la matriu. El booleà diagonal determina si es
vol la suma de les diagonals (cert) o de les antidiagonals (fals).
Per exemple, per a la matriu:
1 2 3
4 5 6
7 8 9
La suma de la primera diagonal és
,
la de la segona
,
la tercera
,
la quarta
,
i la cinquena
.
Per tant, el vector obtingut quan el booleà és cert és:
7 12 15 8 3
Si el boolea fos fals i sumessim les antidiagonals, obtindrem
per la primera,
per la segona,
per la tercera,
per la quarta, i
per la darrera, i el resultat de la funció seria el vector:
1 6 15 14 9
Només cal enviar el procediment demanat; el programa principal serà ignorat.
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