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).
As instruções acima estão sincronizadas com um repositório compartilhado para garantir consistência entre todos os tracks de linguagens. Este apêndice traz esclarecimentos adicionais ou modifica as instruções conforme necessário para se alinhar melhor aos objetivos do track de Clojure.
Para este exercício no track de Clojure, você pode assumir que a saída da função allergies é um vetor, como indicam os testes.
No entanto, isso não é um requisito rígido; você pode retornar qualquer coleção sequencial.
Crie sua conta no Exercism para aprender e dominar Clojure com 12 conceitos105 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.