Багато мов програмування написані за допомогою виключно друкованих ASCII, вкладок та нових рядків. Ці 97 символів потім зберігаються у 8-бітових байтах (які насправді здатні вмістити 256 різних символів!), Що просто жахливо неефективно - особливо в коді-гольфінгу, де кожен байт рахується! У цьому виклику ви зможете знизити свій рахунок, використовуючи базову конверсію.
Виклик
Ваша програма / функція приймає вхідний рядок або масив символів, який потім інтерпретується як число базової 97 . Потім він перетворює це на базове число 256 і підраховує кількість символів (тобто байтів), необхідних для представлення цього числа. Цей підрахунок буде значенням виводу / повернення вашої програми / функції.
Простий приклад з використанням base-2 та base-10 (двійковий і десятковий): якщо вхід є 10110
, вихід буде 2, оскільки 10110 2 = 22 10 (дві цифри необхідні для представлення результату). Аналогічно, 1101 2 стає 13 10 , даючи також вихід 2, а 110 2 стає 6 10 , тож вихід буде рівний 1.
Рядок введення може містити всі 95 символів для друку ASCII, а також нову лінію \n
та буквальну вкладку \t
, що створює алфавіт вихідного коду з 97 символів для базового перетворення. Точним алфавітом буде таким чином (заміняючи \t
та \n
з фактичною буквальною вкладкою та новим рядком; зверніть увагу на простір буквально після нового рядка) :
\t\n !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Зауважте, що порядок цього алфавіту важливий: наприклад, основа-97 \t
відповідає десятковій 0
і !
відповідає десятковій 3
.
Деякі тести: (вам не потрібно обробляти порожній рядок)
Input Output
'example@domain.com' 15
'All your base are belong to us!' 26
' abcd' 9
'~ abcd' 10
'ABCDEFGHIJK' 9
'zyxwvutsrpq' 10
'{".~"}.~' 7
'\t\t\t\t\t\t\t\t' 1 (with \t a literal tab; the result is 0, which can be represented with 1 byte)
'!\t\t\t\t\t\t\t\t' 7 (with \t a literal tab)
Оцінка балів
Якщо у вашій статті використовується тільки друкований ASCII, новий рядок та / або вкладка: Оцінка вашої програми буде результатом вашої програми, якщо в якості вхідного даних буде вказаний власний вихідний код.
Якщо у вашому записі використовуються будь-які символи, на яких не можна друкувати ASCII, новий рядок або вкладку: Оцінка вашої програми - це просто кількість байтів, як у коді-гольф .