Pour les exercices de cette partie, vous pourrez utiliser la liste suivante pour avoir la valeur des billets et pièces d'euros :
euros=[500,200,100,50,20,10,5,2,1]
Il n'est pas conseillé d'utiliser des centimes dans la liste des valeurs, à cause des erreurs d'arrondis sur les nombres réels. Ou alors, il faut que toutes les valeurs soient exprimées en centimes.
Exercice 1
Compléter la fonction rendu_monnaie qui prend en paramètres un entier montant et une liste d'entiers liste_valeurs, et qui renvoie la liste des nombres de billets et pièces nécessaire pour obtenir montant, en en utilisant le moins possible. Les valeurs des billets et des pièces sont données dans l'ordre décroissant.
Vous pourrez, par exemple, utiliser un algorithme glouton.
La fonction sum(liste) renvoie la somme de tous les éléments d'une liste de nombres. Elle permet de vérifier que le montant rendu est bien le bon.
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5
.128013;)3=9lwn8gv,S."5/:rf7uemkdas p
h10itP(_y2[46cb]-o030u0r0E0v0D0a0w0x0N0a0v0w0w080j0E0D0y0j020z030w0q0s0s0v0n0I020h0R0a0q0+0R0c030l0=0@0_0{0:0y02031b141e0l1b0:0u0D0f0!0$0'0)0A0D0e0A0a1s0A0E0.030V0O0a0r1n0%0(0j1r1t1v1t0E1B1D1z0E0n1c0E0A0!0~0w0y0v0c0)0J0j1F1p0j0o0X0r0c0v0s0r1z1Y1!1(1H1+1D1.1:0.040x0F0n0R0y0R0w0D110c0x0T1W0n0n0r0N28141?0c1c0l1U2l1R1T1S1A0u1^0)1v0c1-251z1k1m0#1G2v0D2x0c0R2B1z0y2e1c2j2l2P0;1Z292D1)2I0n0^0a0.0B2i2T0/2S1@2V1H2X2Z0.0J2%1!2(2j2u0j2-0v2!02072;2k0:2@2+0)2`2|0L2 2?2T2^350.0k38313a332_0R2Y2{0.0M3f2)2U1o2,3k2.020p3p323s343u3m020d3y3h3A3j3l2|09381f2N142B2o0u1T2t3i0N2J1;1c3R1d3P2R152'033X0T2O3H2E2_0.0r0q220w380x3q2^0R0.083_3{3i0-020K3N3z3/0s0D3d0C0C463.1)430g40471)492/4c4e2*3I4h4j4f1H4m020B4o3(2=414r0.4i4A2k3`4k4v4a020k4d4G3-4q3/4s4P4I4u0)4w0J4O2R4J0)4T2P4V4R4l4L4y4p3r4S4E4t4*4K3d4.2^4'2'4)4/4+2/4_424;4U4C484,514D020P3f3g4?0)0t0.0T0o4=4~2,0o0.2e0c0u0q0H0s121.0D0r584:020G5z2W0.5u0c0V5H5D1H4{2=4}3b0.1v0w0E0r0H0f2{3=0n3^4P554g0.060m3f0x5+5O3i0c5Q0D5S5U5p5r5k3|3~5_52445b4P0z5,5-3I5g020o3k5|3I5/025W0a693/0R0b0.2G6f5E025R5T5V5X3?5!4#4W0j435)6062625$1H650b1r1D6l2,5F125I0E6I0)3}02000e0E053 544$3:6c2{5K4%0.6y2P616A6+6C345:5=0H5@0q6$0j6Q0i6@6b0v0y0y1-0u6@435C5#6Y6b6d725'5*6+6A6-6Z5G6M6O6^5{6X6v6b7g1!6N7l5e7j020Q7i776#6z5,7e652e0E3?137r5l6.6n5;6p6=3p0l3+0r2l2M7R3Q1l3S2o2r2m0v1C7U0l3R0:7'0U0W0Y02.
###(Dés-)Active le code après la ligne # Tests (insensible à la casse) (Ctrl+I)
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
Évaluations restantes : 5/5
.128013;)3=9lwn8gv,S."5/:rf7uemkdas p
h10itP(_y2[46cb]-o030u0r0E0v0D0a0w0x0N0a0v0w0w080j0E0D0y0j020z030w0q0s0s0v0n0I020h0R0a0q0+0R0c030l0=0@0_0{0:0y02031b141e0l1b0:0u0D0f0!0$0'0)0A0D0e0A0a1s0A0E0.030V0O0a0r1n0%0(0j1r1t1v1t0E1B1D1z0E0n1c0E0A0!0~0w0y0v0c0)0J0j1F1p0j0o0X0r0c0v0s0r1z1Y1!1(1H1+1D1.1:0.040x0F0n0R0y0R0w0D110c0x0T1W0n0n0r0N28141?0c1c0l1U2l1R1T1S1A0u1^0)1v0c1-251z1k1m0#1G2v0D2x0c0R2B1z0y2e1c2j2l2P0;1Z292D1)2I0n0^0a0.0B2i2T0/2S1@2V1H2X2Z0.0J2%1!2(2j2u0j2-0v2!02072;2k0:2@2+0)2`2|0L2 2?2T2^350.0k38313a332_0R2Y2{0.0M3f2)2U1o2,3k2.020p3p323s343u3m020d3y3h3A3j3l2|09381f2N142B2o0u1T2t3i0N2J1;1c3R1d3P2R152'033X0T2O3H2E2_0.0r0q220w380x3q2^0R0.083_3{3i0-020K3N3z3/0s0D3d0C0C463.1)430g40471)492/4c4e2*3I4h4j4f1H4m020B4o3(2=414r0.4i4A2k3`4k4v4a020k4d4G3-4q3/4s4P4I4u0)4w0J4O2R4J0)4T2P4V4R4l4L4y4p3r4S4E4t4*4K3d4.2^4'2'4)4/4+2/4_424;4U4C484,514D020P3f3g4?0)0t0.0T0o4=4~2,0o0.2e0c0u0q0H0s121.0D0r584:020G5z2W0.5u0c0V5H5D1H4{2=4}3b0.1v0w0E0r0H0f2{3=0n3^4P554g0.060m3f0x5+5O3i0c5Q0D5S5U5p5r5k3|3~5_52445b4P0z5,5-3I5g020o3k5|3I5/025W0a693/0R0b0.2G6f5E025R5T5V5X3?5!4#4W0j435)6062625$1H650b1r1D6l2,5F125I0E6I0)3}02000e0E053 544$3:6c2{5K4%0.6y2P616A6+6C345:5=0H5@0q6$0j6Q0i6@6b0v0y0y1-0u6@435C5#6Y6b6d725'5*6+6A6-6Z5G6M6O6^5{6X6v6b7g1!6N7l5e7j020Q7i776#6z5,7e652e0E3?137r5l6.6n5;6p6=3p0l3+0r2l2M7R3Q1l3S2o2r2m0v1C7U0l3R0:7'0U0W0Y02.
Exercice 2
Compléter la fonction rendu_monnaie2 qui prend en paramètres un entier montant et une liste d'entiers liste_valeurs, et qui renvoie la plus petite liste de couples (nombre,valeur) correspondant au nombre de fois qu'il faut utiliser valeur pour obtenir montant. Les valeurs des billets et des pièces sont données dans l'ordre décroissant.
Indication
Si on doit rendre n fois une valeur donnée, pour quelle valeur de n est-ce qu'il ne faut pas l'ajouter à la liste ?
# Tests
(insensible à la casse)(Ctrl+I)