Публікую авторський розв'язок задачі "Марсіани" Кроля Дані та Кулєшова Кості.
Розшифруйте повідомлення, отримане з Марсу:
+8-4+1-1+8-8+8-8-6+6
Відомо, що повідомлення
закодоване поданою таблицею символів:
На початку передавання повідомлень вказівник знаходиться у положенні 0. Кожен наступний символ передається обертанням камери на вказану кількість поділок ліворуч (віднімання) чи праворуч (додавання).
А ось опис їхнього розв'язку:
Є камера всередині кола з
розподілами. Ділення названі символами від 0 до F і
додатковий символ ?.
Слово задається шифром +
8-4 + 1-1 + 8-8 + 8-8-6 + 6, де кожне число - кількість поділів на яке повинна
повернуться камера.
На початку програми камера
знаходиться на 0-му розподілі і після повороту залишається на своїй позиції.
Створюється масив значень
кола і лічильник, що дорівнює 0.
Створюється порожня
текстова змінна, яка буде рішенням.
Після введення шифру, він
ділився з 2 вирази, так як саме така частина відповідає 1 символу ASCII.
Після цього значення
лічильника підсумовується з виразом і записується в тимчасову змінну.
Тимчасова змінна
перетворюється в текст по таблиці з завдання і дописується до змінної з
рішенням.
По закінченню циклу з
перетворенням пар шифру в текст, виводиться рішення.
Таким чином, шифр + 8-4 + 1-1 + 8-8 + 8-8-6 + 6 позначає "HELLO".
Створений хлопцями бот для
розв’язку цієї задачі, можно переглягути за
посиланням: