OCaml (option informatique) · Chapitre 12 · Application directe du cours
Nombre de pièces
Algorithmes gloutons · niveau 1 (application)
Énoncé
Écrire nb_pieces pieces montant (sans construire la liste).
Corrigé
let rec nb_pieces pieces montant =
match pieces with
| [] -> if montant = 0 then 0 else failwith "rendu impossible"
| p :: reste ->
if p <= montant then 1 + nb_pieces pieces (montant - p)
else nb_pieces reste montant
Même structure que rendu, mais on compte au lieu d'accumuler. nb_pieces [50;20;10;5;2;1] 67 .
Exercices semblables
- Quand le glouton se trompe corrigé
- Sac à dos fractionnaire corrigé
- Nombre minimal de salles corrigé
- Rendu de monnaie glouton corrigé
- Compatibilité de deux activités corrigé