Треки
/
PHP
PHP
/
Вправи
/
Таємне рукостискання
Таємне рукостискання

Таємне рукостискання

Середня

Вступ

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

Ми придумали його так, що одна людина називає число від 1 до 31, а інша перетворює його на послідовність дій.

Вказівки

Перетворіть число від 1 до 31 на послідовність дій у таємному рукостисканні.

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

Дії для кожного розряду такі:

00001 = wink
00010 = double blink
00100 = close your eyes
01000 = jump
10000 = Reverse the order of the operations in the secret handshake.

Розгляньмо число 9 як приклад:

  • 9 у двійковій системі має вигляд 1001.
  • Цифра, що найдалі праворуч, дорівнює 1, тож перша дія буде wink.
  • Рухаємося ліворуч, наступна цифра дорівнює 0, тож double blink не буде.
  • Рухаємося ліворуч знову, наступна цифра дорівнює 0, тож очі залишаються розплющеними.
  • Рухаємося ліворуч знову, наступна цифра дорівнює 1, тож буде jump.

Це була остання цифра, тож остаточний код такий:

wink, jump

Для числа 26, яке в двійковій системі має вигляд 11010, отримуємо такі дії:

  • double blink
  • jump
  • обернути порядок дій

Отже, таємне рукостискання для 26 таке:

jump, double blink
Note

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


Джерело

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

Час розпочати Таємне рукостискання?

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