Llista Acumulada

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

L=[1,3,1,2,3]L = [1, 3, 1, 2, 3]

ha de modificar la llista de manera que quedi

L=[10,9,6,5,3]L = [10, 9, 6, 5, 3]

Si ens hi fixem, a la primera posició hi ha la suma 1+3+1+2+31 + 3 + 1 + 2 + 3, a la segona posició hi ha la suma 3+1+2+33 + 1 + 2 + 3, a la tercera posició hi ha la suma 1+2+31 + 2 + 3, a la quarta posició hi ha la suma 2+32 + 3 i a la cinquena posició hi ha la suma 33.

Molt important: la solució ha de ser recursiva, a més de raonablement eficient (potser fent alguna immersió).

Entrada

Una llista d’enters més grans o iguals que zero.

Sortida

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.

Observació

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.

Informació del problema

Autoria: PRO1-Vilanova

Generació: 2026-01-25T21:08:27.398Z

© Jutge.org, 2006–2026.
https://jutge.org