Ми разом із друзями та друзями друзів засновуємо таємний клуб програмування. Не всі знайомі одне з одним, тож ми вирішили створити таємне рукостискання, за допомогою якого можна впізнати, що людина належить до клубу. Ми не хочемо, щоб хтось необізнаний зміг розгадати цей шифр.
Ми придумали його так, що одна людина називає число від 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 як приклад:
1001.wink.Це була остання цифра, тож остаточний код такий:
wink, jump
Для числа 26, яке в двійковій системі має вигляд 11010, отримуємо такі дії:
Отже, таємне рукостискання для 26 таке:
jump, double blink
Якщо не зрозуміло, що таке двійкова система або як вона працює, перегляньте цей посібник із двійкової системи.
Щоб усе було простіше (і щоб ми могли зосередитися на важливій частині цієї вправи), функція отримуватиме від тестів двійкові рядки як аргументи:
>>> commands("00011")
["wink", "double blink"]
Зареєструйтеся на Exercism, щоб вивчати й опановувати Python, а також 17 концепцій146 вправ та справжнє наставництво від людей, і все це безкоштовно.