Escriviu una funció recursiva
compra_articles que, donada una llista l de preus
d’articles (enters) i una quantitat (enter) de diners en euros, torni el
nombre d’articles que es podran comprar amb aquests diners seguint
l’ordre en què apareixen a la llista l, començant per l’inici
(begin). Quan un article no es pugui comprar es deixarà de
banda. La solució ha de tenir en compte que no hi haurà cap article de
menys de 10 euros.
L’especificació d’aquesta funció és:
int compra_articles(const list<int> &l, int x);
/* Pre: l = L, x > 0 */
/* Post: El resultat es el nombre d'articles de L que podem comprar amb x euros */Per exemple, donada la llista i una quantitat , es poden comprar tres articles que, seguint l’ordre en què apareixen a la llista, serien: . No es tracta de maximitzar el nombre d’articles a comprar.
Com a entrada hi haurà el nombre d’enters de la llista () i els enters que formaran part de la llista. A continuació hi haurà un enter corresponent a l’import en euros de què es disposa.
Com a sortida es mostrarà l’estructura de la llista d’entrada, l’enter corresponent a l’import disponible i un missatge indicant el nombre d’articles que es poden comprar.
Escriviu el codi de la funció compra_articles dins del
fitxer llista_compra_articles.cpp.
Heu d’enviar la solució comprimida en un fitxer .tar:
tar cvf program.tar llista_compra_articles.cpp
Observeu que per compilar us donem el Makefile, el mòdul
listIOint, la capçalera del mòdul funcional
llista_compra_articles.hpp i el programa principal
program.cpp.
Input
2 90 120 50
Output
[90,120] 50 Es poden comprar 0 articles
Input
5 40 40 30 20 40 125
Output
[40,40,30,20,40] 125 Es poden comprar 3 articles
Input
8 40 10 10 10 10 10 10 50 70
Output
[40,10,10,10,10,10,10,50] 70 Es poden comprar 4 articles