過敏

過敏

中等

說明

給定一個人的過敏分數,判斷他是否對某個特定項目過敏,並列出他全部的過敏項目。

過敏測試會產生一個數字分數,這個分數包含這個人所有(曾接受測試的)過敏項目的資訊。

接受測試的項目(與其對應數值)如下:

  • 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 中用遞迴的有趣做法。