Маючи оцінку алергії людини, визначмо, чи є в неї алергія на заданий алерген, і складімо повний список її алергій.
Тест на алергію дає одну числову оцінку, яка містить інформацію про всі алергії людини (ті, які в неї перевіряли).
Ось перелік алергенів (і їхні значення), які перевіряють:
Тож якщо Том має алергію на peanuts і chocolate, він отримує оцінку 34.
Тепер, маючи лише цю оцінку 34, наша програма має вміти сказати:
Зауваження: задана оцінка може містити алергени, не перелічені вище (тобто алергени зі значеннями 256, 512, 1024 тощо). Наша програма має ігнорувати ці складники оцінки. Наприклад, якщо оцінка алергії дорівнює 257, наша програма має повідомити лише про алергію eggs (1).
У цій вправі використовується unordered_set
Ймовірно, нам знадобиться функція emplace, щоб додавати елементи до множини.
Можливо, ми натрапимо на const, адже в силабусі його ще не було.
Коли він стоїть перед змінною, то працює як запобіжник.
Змінні з const не можна змінювати.
У цій вправі також є ключове слово unsigned.
Воно подвоює діапазон цілого числа, перед яким стоїть, але не дозволяє йому стати відʼємним.
Зареєструйтеся на Exercism, щоб вивчати й опановувати C++, а також 19 концепцій100 вправ та справжнє наставництво від людей, і все це безкоштовно.
Ми розглянемо побітовий зсув, побітове порівняння та інші поняття двійкових чисел! А ще подивимося на рішення зі зіставленням зі зразком і на цікавий підхід у Erlang з використанням рекурсії.