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).
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.
La entrada ya la hace el programa principal proporcionado. Consiste en varios casos. Cada caso empieza con un entero () que indica el tamaño del vector, seguido de enteros que son los elementos del vector.
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.
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