Étant donné le score d'allergie d'une personne, détermine si elle est allergique ou non à un élément donné, ainsi que la liste complète de ses allergies.
Un test d'allergie produit un score numérique unique qui contient les informations sur toutes les allergies de la personne (celles pour lesquelles elle a été testée).
La liste des éléments testés (et leur valeur) est la suivante :
Ainsi, si Tom est allergique aux peanuts et au chocolate, il obtient un score de 34.
Maintenant, avec seulement ce score de 34, ton programme doit pouvoir dire :
Remarque : un score donné peut inclure des allergènes non listés ci-dessus (c'est-à-dire des allergènes dont le score est 256, 512, 1024, etc.). Ton programme doit ignorer ces composantes du score. Par exemple, si le score d'allergie est 257, ton programme ne doit rapporter que l'allergie eggs (1).
Cet exercice utilise unordered_set.
Tu auras probablement besoin de la fonction emplace pour ajouter des éléments à l'ensemble.
Tu tomberas peut-être sur const, car ce mot-clé n'a pas encore été abordé dans le programme.
Lorsqu'il précède une variable, il agit comme une protection.
Les variables const ne peuvent pas être modifiées.
Cet exercice fait aussi intervenir le mot-clé unsigned.
Il double la plage de l'entier qu'il précède, mais ne lui permet pas de devenir négatif.
Inscris-toi sur Exercism pour apprendre et maîtriser C++ avec 19 concepts100 exercices, et un vrai mentorat humain, le tout gratuitement.
On explore le décalage de bits, la comparaison bit à bit et d'autres concepts sur les nombres binaires ! On jette aussi un œil à une solution qui utilise le filtrage par motif, ainsi qu'à une approche intéressante en Erlang reposant sur la récursivité.