Alergias

Alergias

Médio

Instruções

Dada a pontuação de alergias de uma pessoa, determina se é alérgica a um determinado item e qual é a lista completa das suas alergias.

Um teste de alergias produz uma única pontuação numérica que contém a informação sobre todas as alergias que a pessoa tem (aquelas para as quais foi testada).

A lista de itens testados (e o respetivo valor) é a seguinte:

  • ovos (1)
  • amendoins (2)
  • marisco (4)
  • morangos (8)
  • tomates (16)
  • chocolate (32)
  • pólen (64)
  • gatos (128)

Assim, se o Tom for alérgico a amendoins e chocolate, obtém uma pontuação de 34.

Agora, com apenas essa pontuação de 34, o teu programa deve conseguir dizer:

  • Se o Tom é alérgico a algum dos alergénios listados acima.
  • Todos os alergénios a que o Tom é alérgico.

Nota: uma determinada pontuação pode incluir alergénios não listados acima (ou seja, alergénios com valor 256, 512, 1024, etc.). O teu programa deve ignorar essas partes da pontuação. Por exemplo, se a pontuação de alergias for 257, o teu programa deve indicar apenas a alergia aos ovos (1).

Apêndice

Note

As instruções acima estão sincronizadas com um repositório partilhado, para garantir a consistência entre todos os percursos das várias linguagens. Este apêndice fornece esclarecimentos adicionais ou modifica as instruções conforme necessário, para se alinhar melhor com os objetivos do percurso de Clojure.

Neste exercício, no percurso de Clojure, podes assumir que o resultado da função allergies é um vetor, como indicam os testes. No entanto, isto não é um requisito obrigatório; podes devolver qualquer coleção sequencial.

Editar via GitHub A ligação abre numa nova janela ou separador
Clojure Exercism

Estás pronto para começar Alergias?

Inscreve-te no Exercism para aprenderes e dominares Clojure com 12 conceitos105 exercícios, e mentoria humana real, tudo grátis.

Mergulha a fundo em Alergias!

Exploramos o deslocamento de bits, a comparação bit a bit e outros conceitos de números binários! Vemos também uma solução que usa correspondência de padrões e uma abordagem interessante em Erlang com recursão.