过敏

过敏

中等

说明

给定一个人的过敏分数,判断他是否对某个特定物品过敏,并列出他的全部过敏项。

一次过敏测试会得到一个数字分数,其中包含这个人(接受过测试的)所有过敏项的信息。

接受测试的物品(及其对应分值)如下:

  • eggs (1)
  • peanuts (2)
  • shellfish (4)
  • strawberries (8)
  • tomatoes (16)
  • chocolate (32)
  • pollen (64)
  • cats (128)

因此,如果 Tom 对 peanuts 和 chocolate 过敏,他的得分就是 34。

现在,只给出 34 这个分数,你的程序应该能够判断:

  • Tom 是否对上面列出的任何一种过敏原过敏。
  • Tom 过敏的全部过敏原。

注意:给定的分数可能包含上面没有列出的过敏原(即分值为 256、512、1024 等的过敏原)。 你的程序应该忽略分数中的这些部分。 例如,如果过敏分数是 257,你的程序应该只报告 eggs (1) 这一项过敏。

通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Lisp Flavoured Erlang Exercism

准备好开始 过敏 了吗?

注册 Exercism,借助 68 个练习 和真人导师指导,学习并掌握 Lisp Flavoured Erlang,全部免费。

深入探索 过敏!

我们来探索位移、按位比较以及其他二进制数的概念!还会看看使用模式匹配的解法,以及在 Erlang 中用递归实现的一个有趣思路。