Suma recursiva d'un vector Y75196


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 (n0n \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++