مسیرها
/
C++
C++
/
تمرین‌ها
/
حساسیت‌ها
حساسیت‌ها

حساسیت‌ها

آسان

دستورالعمل‌ها

با توجه به امتیاز حساسیت یک فرد، مشخص کنید که آیا او به ماده‌ی مشخصی حساسیت دارد یا نه و فهرست کامل حساسیت‌هایش چیست.

آزمایش حساسیت یک امتیاز عددی واحد تولید می‌کند که اطلاعات مربوط به همه‌ی حساسیت‌های فرد (حساسیت‌هایی که برایشان آزمایش شده است) را در خود دارد.

فهرست مواد (و مقدارشان) که آزمایش شده‌اند چنین است:

  • تخم‌مرغ (۱)
  • بادام زمینی (۲)
  • صدف (۴)
  • توت‌فرنگی (۸)
  • گوجه‌فرنگی (۱۶)
  • شکلات (۳۲)
  • گرده (۶۴)
  • گربه (۱۲۸)

پس اگر تام به بادام زمینی و شکلات حساسیت داشته باشد، امتیاز او ۳۴ می‌شود.

حالا با داشتن فقط همان امتیاز ۳۴، برنامه‌ی شما باید بتواند بگوید:

  • اینکه آیا تام به هر یک از آن آلرژن‌های فهرست‌شده در بالا حساسیت دارد یا نه.
  • همه‌ی آلرژن‌هایی که تام به آن‌ها حساسیت دارد.

توجه: یک امتیاز مشخص ممکن است شامل آلرژن‌هایی باشد که در بالا فهرست نشده‌اند (یعنی آلرژن‌هایی با امتیاز ۲۵۶، ۵۱۲، ۱۰۲۴ و غیره). برنامه‌ی شما باید آن مؤلفه‌های امتیاز را نادیده بگیرد. برای مثال، اگر امتیاز حساسیت ۲۵۷ باشد، برنامه‌ی شما باید فقط حساسیت تخم‌مرغ (۱) را گزارش کند.

چند نکته‌ی تکمیلی برای پیاده‌سازی در C++

این تمرین از unordered_set استفاده می‌کند. احتمالاً به تابع emplace نیاز دارید تا عنصرها را به مجموعه اضافه کنید.

ممکن است به const برخورد کنید، چون هنوز در برنامه‌ی درسی مطرح نشده است. وقتی پیش از یک متغیر می‌آید، مانند یک محافظ عمل می‌کند. متغیرهای const را نمی‌توان تغییر داد. این تمرین کلیدواژه‌ی unsigned را هم دارد. این کلیدواژه بازه‌ی عدد صحیحی را که پیشوند گرفته دو برابر می‌کند، اما نمی‌گذارد منفی شود.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
C++ Exercism

آماده‌اید حساسیت‌ها را شروع کنید؟

در Exercism ثبت‌نام کنید تا C++ را همراه با 19 مفهوم100 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.

بررسی عمیق حساسیت‌ها!

جابه‌جایی بیت‌ها، مقایسه‌ی بیتی و دیگر مفاهیم اعداد دودویی را بررسی می‌کنیم! نگاهی هم به راه‌حلی با استفاده از تطبیق الگو و رویکردی جالب در Erlang با استفاده از بازگشت می‌اندازیم.