Треки
/
WebAssembly
WebAssembly
/
Вправи
/
Яйця Еліуда
Яйця Еліуда

Яйця Еліуда

Середня

Вступ

Наш друг Eliud успадкував ферму від своєї бабусі Tigist. Її бабуся була винахідницею і мала схильність будувати речі надто складно. У курятнику є цифровий дисплей, який показує закодоване число, що позначає позиції всіх яєць, які можна зібрати.

Eliud просить нас написати програму, яка показує справжню кількість яєць у курятнику.

Кодування інформації про позиції обчислюється так:

  1. Огляньмо потенційні місця для яєць і позначмо 1 там, де яйце вже є, або 0 там, де місце порожнє.
  2. Переведімо число з двійкової системи в десяткову.
  3. Покажімо результат на дисплеї.

Приклад 1

Сім окремих гнізд, розташованих у ряд, у першому, третьому, четвертому та сьомому з яких лежить по одному яйцю.

 _ _ _ _ _ _ _
|E| |E|E| | |E|

Отримане двійкове число

1011001

 _ _ _ _ _ _ _
|1|0|1|1|0|0|1|

Десяткове число на дисплеї

89

Справжня кількість яєць у курятнику

4

Приклад 2

Сім окремих гнізд, розташованих у ряд, де лише в четвертому гнізді є яйце.

 _ _ _ _ _ _ _
| | | |E| | | |

Отримане двійкове число

0001000

 _ _ _ _ _ _ _
|0|0|0|1|0|0|0|

Десяткове число на дисплеї

8

Справжня кількість яєць у курятнику

1

Вказівки

Порахуйте кількість бітів зі значенням 1 у двійковому поданні числа.

Обмеження

Не чіпайте функцію підрахунку бітів, яку надає стандартна бібліотека! Натомість зробіть це самостійно, скориставшись іншими базовими інструментами.

Зарезервовані адреси

Для цієї вправи лінійна памʼять не потрібна.

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
WebAssembly Exercism

Час розпочати Яйця Еліуда?

Зареєструйтеся на Exercism, щоб вивчати й опановувати WebAssembly, а також 87 вправ та справжнє наставництво від людей, і все це безкоштовно.