Змагання
Напишіть програму, яка може приймати введення однорядкового рядка, що містить будь-які символи для друку ASCII, та виводить ту саму рядок, закодовану в Base85 (використовуючи конвенцію big-endian). Можна припустити, що вхід завжди буде ≤ 100 символів.
Посібник по Base85
Чотири октети закодовані в (зазвичай) п'ять символів Base85.
Base85 символи в діапазоні від
!
доu
(ASCII 33 - 117) іz
(122) ASCII.Для кодування ви постійно виконуєте ділення на 85 на чотири октети (32-бітове число) і додаєте 33 до решти (після кожного поділу), щоб отримати символ ASCII для кодованого значення. Наприклад, перше застосування цього процесу виробляє найправіший символ у кодованому блоці.
Якщо набір з чотирьох октетів містить лише нульові байти, вони кодуються як
z
замість!!!!!
.Якщо останній блок коротший чотирьох октетів, він оброблений нульовими байтами. Після кодування з кінця виводу видаляється та сама кількість символів, яка була додана як підкладка.
Кодованому значенню слід передувати
<~
та супроводжувати його~>
.Кодоване значення не повинно містити пробілів (для цього виклику).
Приклади
In: easy
Out: <~ARTY*~>
In: test
Out: <~FCfN8~>
In: code golf
Out: <~@rGmh+D5V/Ac~>
In: Programming Puzzles
Out: <~:i^JeEa`g%Bl7Q+:j%)1Ch7Y~>
Наступний фрагмент кодує заданий вхід до Base85.