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]

ha de modificar la llista de manera que quedi

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

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

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
