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:
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:
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).
Inscreve-te no Exercism para aprenderes e dominares COBOL com 46 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.