Suma recursiva d'un vector T66481


Statement
 

pdf   zip   main.cc

En aquest problema, caldrà implementar la suma dels elements d’un vector de forma recursiva, és a dir, sense fer servir cap bucle (for o while).

Implementa una funció suma_vector amb la declaració següent:

#include <vector>
using namespace std;

/**
 * @brief Calcula la suma dels elements d'un vector a partir de la 
 *        casella `c` fins al final del vector, de forma recursiva.
 *
 * @param v El vector d'enters a sumar
 * @param c L'índex a partir del qual es comença a sumar
 *
 * @pre c >= 0
 *
 * @returns La suma dels elements v[c] + v[c+1] + ... + v[n-1], on
 *          n és la mida del vector. Si c >= n, retorna 0.
 */
int suma_vector(vector<int>& v, int c);

Per exemple, si tenim un vector v amb els elements {3, 1, 4, 1, 5} i cridem suma_vector(v, 0), el resultat serà 14 (la suma de tots els elements). Si cridem suma_vector(v, 2), el resultat serà 10 (la suma de 4 + 1 + 5).

Observació

El centre d’interès d’aquest problema és la correctesa. Els jocs de prova comproven que la majoria de casos possibles produeixin la sortida correcta.

IMPORTANT: Quan envieu aquest problema, cal posar en el fitxer .cc només la funció suma_vector amb els includes necessaris. Cal esborrar (o comentar amb /* i */) la funció main i llegir_vector si heu modificat el main.cc proporcionat.

Entrada

L’entrada ja la fa el programa principal proporcionat. Consisteix en un seguit de casos. Cada cas comença amb un enter nn (n≥0n \geq 0) que indica la mida del vector, seguit de nn enters que són els elements del vector.

Sortida

La sortida també la produeix el programa principal proporcionat. Per a cada cas, es mostra la suma dels elements del vector en una línia.

Public test cases
  • Input

    5
    3 1 4 1 5
    
    3
    10 20 30
    
    0
    
    1
    7
    
    4
    2 2 2 2
    

    Output

    14
    60
    0
    7
    8
    
  • Information
    Author
    Pau Fernández
    Language
    Catalan
    Other languages
    Spanish
    Official solutions
    C++
    User solutions
    C++