الحساسية

الحساسية

متوسط

التعليمات

بمعلومية درجة حساسية شخصٍ ما، حدّد ما إذا كان يعاني من حساسية تجاه عنصر معيّن أم لا، وقائمة حساسياته الكاملة.

ينتج اختبار الحساسية درجة رقمية واحدة تحتوي على معلومات عن جميع الحساسيات التي يعاني منها الشخص (والتي جرى اختباره عليها).

وهذه قائمة العناصر التي جرى اختبارها (وقيمة كل منها):

  • 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) فقط.

ملحق

Note

التعليمات أعلاه متزامنة مع مستودع مشترك لضمان الاتساق عبر جميع مسارات اللغات. يقدّم هذا الملحق توضيحات إضافية أو يعدّل التعليمات حسب الحاجة لتتوافق بشكل أفضل مع أهداف مسار Clojure.

في هذا التمرين ضمن مسار Clojure، يمكنك افتراض أن ناتج دالة allergies هو متجه، كما تشير الاختبارات. لكن هذا ليس شرطًا صارمًا؛ فلك مطلق الحرية في إرجاع أي مجموعة متسلسلة.

تعديل عبر GitHub يفتح الرابط في نافذة أو علامة تبويب جديدة
Clojure Exercism

مستعد لبدء الحساسية؟

سجّل في Exercism لتتعلّم وتتقن Clojure عبر 12 مفهومًا105 تمارين، وإرشاد بشري حقيقي، وكل ذلك مجانًا.

تعمّق في الحساسية!

نستكشف إزاحة البتات والمقارنة على مستوى البتات ومفاهيم أخرى للأعداد الثنائية! ونلقي نظرة أيضًا على حل يستخدم مطابقة الأنماط، وعلى أسلوب مثير للاهتمام في Erlang يستخدم الاستدعاء الذاتي.