Dada a pontuação de alergia de uma pessoa, determine se ela é alérgica a um determinado item e qual é a lista completa de alergias dela.
Um teste de alergia produz uma única pontuação numérica, que contém as informações sobre todas as alergias que a pessoa tem (aquelas para as quais ela foi testada).
A lista dos itens testados (e seus valores) é:
Então, se Tom é alérgico a peanuts e chocolate, ele recebe uma pontuação de 34.
Agora, dada apenas essa pontuação de 34, seu programa deve ser capaz de dizer:
Observação: uma determinada pontuação pode incluir alérgenos não listados acima (ou seja, alérgenos que valem 256, 512, 1024 etc.). Seu programa deve ignorar esses componentes da pontuação. Por exemplo, se a pontuação de alergia for 257, seu programa deve informar apenas a alergia a eggs (1).
Este exercício usa o unordered_set.
Provavelmente você vai precisar da função emplace para adicionar elementos ao conjunto.
Você pode esbarrar em const, porque ele ainda não apareceu no syllabus.
Quando vem antes de uma variável, funciona como uma proteção.
Variáveis const não podem ser alteradas.
Este exercício também apresenta a palavra-chave unsigned.
Ela dobra o intervalo do inteiro ao qual é prefixada, mas não deixa que ele fique negativo.
Crie sua conta no Exercism para aprender e dominar C++ com 19 conceitos100 exercícios e mentoria humana de verdade, tudo de graça.
Exploramos deslocamento de bits, comparação bit a bit e outros conceitos de números binários! Também damos uma olhada em uma solução que usa correspondência de padrões e em uma abordagem interessante em Erlang com recursão.