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

Яйця Еліуда

Легка

Вступ

Наш друг 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 у двійковому поданні числа.

Обмеження

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

Додаток

Note

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

Важливо не використовувати наявні вбудовані функції зі схожою функціональністю до тієї функції, яку ми реалізуємо, адже це зменшило б навчальну цінність вправи. У Clojure немає вбудованої функції для підрахунку кількості бітів у числі, тому у своїй реалізації ми можемо використати будь-яку функцію Clojure. Однак у Java така функція є: bitCount.

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

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

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