Adloun

Nombre de pièces

Exercice · OCaml (option informatique), chapitre 12 — Algorithmes gloutons

É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 .

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.