OCaml (option informatique) · Chapitre 12 · Application directe du cours
Rendu de monnaie glouton
Algorithmes gloutons · niveau 1 (application)
Énoncé
Écrire rendu et donner rendu [50; 20; 10; 5; 2; 1] 67.
Corrigé
let rec rendu pieces montant =
match pieces with
| [] -> if montant = 0 then [] else failwith "rendu impossible"
| p :: reste ->
if p <= montant then p :: rendu pieces (montant - p)
else rendu reste montant
rendu [50;20;10;5;2;1] 67 [50; 10; 5; 2], soit quatre pièces ().
Exercices semblables
- Quand le glouton se trompe corrigé
- Sac à dos fractionnaire corrigé
- Nombre minimal de salles corrigé
- Nombre de pièces corrigé
- Compatibilité de deux activités corrigé