Suma de Diagonales X15162


Statement
 

pdf   zip   main.cc

html

Dada una matriz cuadrada de tamaño n×n, implemente la función en C++:

vector<int> suma_diagonal(const vector<vector<int>>& A, bool diagonal)

 
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.

Sample session
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
Information
Author
INFO-FME
Language
Spanish
Translator
Original language
Catalan
Other languages
Catalan
Official solutions
C++
User solutions
C++