Контрольные задания > В кодировке ЮниКот каждый символ кодируется 16 битами. Сергей написал текст (в нём нет лишних пробелов):
«Белая берёза
Под моим окном
Принакрылась снегом,
Точно серебром».
Одно из слов Сергей случайно написал два раза подряд, поставив между одинаковыми словами один пробел. При этом размер написанного предложения в данной кодировке оказался на 10 байт больше, чем размер нужного предложения. Напишите в ответе лишнее слово.
Вопрос:
В кодировке ЮниКот каждый символ кодируется 16 битами. Сергей написал текст (в нём нет лишних пробелов):
«Белая берёза
Под моим окном
Принакрылась снегом,
Точно серебром».
Одно из слов Сергей случайно написал два раза подряд, поставив между одинаковыми словами один пробел. При этом размер написанного предложения в данной кодировке оказался на 10 байт больше, чем размер нужного предложения. Напишите в ответе лишнее слово.
Разберем решение задачи.
1. Определение размера одного символа в байтах:
Поскольку в кодировке ЮниКот каждый символ кодируется 16 битами, нужно перевести это значение в байты. 1 байт = 8 бит, следовательно, 16 бит = 2 байта.
2. Определение размера добавленного слова:
Размер написанного предложения оказался на 10 байт больше, чем нужно. Это произошло из-за повторения одного слова и добавления пробела между ними. Следовательно, повторенное слово вместе с пробелом занимает 10 байт.
3. Определение размера одного символа пробела:
Пробел - это тоже символ, который в ЮниКоде занимает 2 байта.
4. Определение размера повторенного слова:
Вычитаем размер пробела из общего размера добавленной части (10 байт): 10 - 2 = 8 байт. Значит, повторенное слово занимает 8 байт.
5. Определение количества символов в повторенном слове:
Так как каждый символ занимает 2 байта, делим размер слова на размер одного символа: 8 / 2 = 4 символа.
6. Поиск лишнего слова:
Теперь нужно найти в тексте слово, которое состоит из 4 символов: «Под»
Ответ: Под