OCaml (option informatique) · Chapitre 11 · Application directe du cours
Sous-ensemble de somme donnée
Récursivité et retour sur trace · niveau 1 (application)
Énoncé
Écrire existe_somme l cible (entiers positifs) et l'appliquer à existe_somme [2; 3; 7] 5.
Corrigé
let rec existe_somme l cible =
if cible = 0 then true
else
match l with
| [] -> false
| x :: reste ->
existe_somme reste (cible - x) || existe_somme reste cible
existe_somme [2;3;7] 5 : prendre 2 puis chercher 3 dans [3;7] → prendre 3, cible 0 → true. Le sous-ensemble convient.
Exercices semblables
- Les reines corrigé
- Reconstruire le sous-ensemble corrigé
- Sortie d'un labyrinthe corrigé
- Nombre de coups de Hanoï corrigé
- Les parties corrigé