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:
Per exemple, donada la llista l = [40,40,30,20,10,10,10] i una quantitat x = 105, es poden comprar tres articles que, seguint l’ordre en què apareixen a la llista, serien: 40,40,20. No es tracta de maximitzar el nombre d’articles a comprar.
Entrada
Com a entrada hi haurà el nombre d’enters n de la llista (n≥0) i els n enters que formaran part de la llista. A continuació hi haurà un enter corresponent a l’import en euros de què es disposa.
Sortida
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.
Observació
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