Suma recursiva de un vector Y75196


Statement
 

pdf   zip   main.cc

En este problema, habrá que implementar la suma de los elementos de un vector de forma recursiva, es decir, sin usar ningún bucle (for o while).

Implementa una función suma_vector con la siguiente declaración:

#include <vector>
using namespace std;

/**
 * @brief Calcula la suma de los elementos de un vector a partir de la 
 *        casilla `c` hasta el final del vector, de forma recursiva.
 *
 * @param v El vector de enteros a sumar
 * @param c El índice a partir del cual se empieza a sumar
 *
 * @pre c >= 0
 *
 * @returns La suma de los elementos v[c] + v[c+1] + ... + v[n-1], donde
 *          n es el tamaño del vector. Si c >= n, devuelve 0.
 */
int suma_vector(vector<int>& v, int c);

Por ejemplo, si tenemos un vector v con los elementos {3, 1, 4, 1, 5} y llamamos suma_vector(v, 0), el resultado será 14 (la suma de todos los elementos). Si llamamos suma_vector(v, 2), el resultado será 10 (la suma de 4 + 1 + 5).

Observación

El centro de interés de este problema es la corrección. Los casos de prueba comprueban que la mayoría de casos posibles produzcan la salida correcta.

IMPORTANTE: Al enviar este problema, hay que poner en el fichero .cc solo la función suma_vector con los includes necesarios. Hay que borrar (o comentar con /* y */) la función main y llegir_vector si habéis modificado el main.cc proporcionado.

Entrada

La entrada ya la hace el programa principal proporcionado. Consiste en varios casos. Cada caso empieza con un entero nn (n0n \geq 0) que indica el tamaño del vector, seguido de nn enteros que son los elementos del vector.

Salida

La salida también la produce el programa principal proporcionado. Para cada caso, se muestra la suma de los elementos del vector en una línea.

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
    Spanish
    Translator
    Pau Fernández
    Original language
    Catalan
    Other languages
    Catalan
    Official solutions
    C++
    User solutions
    C++