给定一个人的过敏评分,判断他是否对某个物品过敏,以及列出他所有的过敏项。
过敏测试会给出一个数字评分,其中包含这个人(接受测试的)所有过敏信息。
参与测试的物品清单(及其分值)如下:
所以,如果 Tom 对 peanuts 和 chocolate 过敏,他的评分就是 34。
现在,仅凭 34 这个评分,你的程序应该能够说出:
注意:某个评分可能包含上面未列出的过敏原(即分值为 256、512、1024 等的过敏原)。你的程序应该忽略评分中的这些部分。例如,如果过敏评分是 257,你的程序应该只报告 eggs (1) 这一项过敏。
我们来探索位移、按位比较以及其他二进制数的概念!还会看看使用模式匹配的解法,以及在 Erlang 中用递归实现的一个有趣思路。