Feu la funció
void llistaAcumulada (list<int>&);
tal que, donada una llista d’enters més grans o iguals que zero per referència (serà, doncs, un paràmetre d’entrada i sortida), modifiqui la llista de manera que cada posició de la llista modificada contingui la suma dels elements que hi havia a la llista fins a aquella posició abans de ser modificada.
Per exemple, si tenim la llista
ha de modificar la llista de manera que quedi
Si ens hi fixem, a la primera posició hi ha la suma , a la segona posició hi ha la suma , a la tercera posició hi ha la suma , a la quarta posició hi ha la suma i a la cinquena posició hi ha la suma .
Molt important: la solució ha de ser recursiva, a més de raonablement eficient (potser fent alguna immersió).
Una llista d’enters més grans o iguals que zero.
Modifica la llista paràmetre de manera que en cada posició de la llista modificada contingui la suma dels elements que hi havia a la llista fins a aquella posició abans de ser modificada.
Heu d’enviar la solució comprimida en un fitxer .tar:
tar cvf program.tar llistaAcumulada.cpp
Observeu que per compilar us donem el Makefile, les
utilitats d’entrada/sortida de piles a utilitats.hpp, la
capçalera del mòdul funcional llistaAcumulada.hpp i el
programa principal program.cpp.
Input
5 1 3 1 2 3
Output
|1||3||1||2||3| |10||9||6||5||3|
Input
5 2 5 0 7 1
Output
|2||5||0||7||1| |15||13||8||8||1|