Adloun

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

Le cours du chapitre · Tous les exercices du chapitre