Com base na pontuação de alergias de uma pessoa, determina se ela é 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 (e o respetivo valor) que foram testados é:
Assim, se o Tom é alérgico a peanuts e chocolate, obtém uma pontuação de 34.
Agora, só com essa pontuação de 34, o teu programa deve conseguir dizer:
Nota: uma determinada pontuação pode incluir alergénios não listados acima (ou seja, alergénios com pontuação 256, 512, 1024, etc.). O teu programa deve ignorar esses componentes da pontuação. Por exemplo, se a pontuação de alergias for 257, o teu programa deve indicar apenas a alergia eggs (1).
Inscreve-te no Exercism para aprenderes e dominares Delphi Pascal com 76 exercícios, e mentoria humana real, tudo grátis.
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.