Контрольные задания > 4. В кодировке UTF-32 каждый символ кодируется 32 битами. Миша написал текст (в нём нет лишних пробелов): «Айва, Алыча, Генипа, Гуарана, Курбарил, Мангостан — фрукты». Ученик вычеркнул из списка название одного из фруктов. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 36 байтов меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название фрукта.
Вопрос:
4. В кодировке UTF-32 каждый символ кодируется 32 битами. Миша написал текст (в нём нет лишних пробелов): «Айва, Алыча, Генипа, Гуарана, Курбарил, Мангостан — фрукты». Ученик вычеркнул из списка название одного из фруктов. Заодно он вычеркнул ставшие лишними запятые и пробелы — два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 36 байтов меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название фрукта.
Ответ:
Разберемся, как найти вычеркнутое слово. У нас есть исходное предложение, и после удаления одного слова размер уменьшился на 36 байтов. В кодировке UTF-32 каждый символ занимает 32 бита, что составляет 4 байта (32 бита / 8 бит/байт = 4 байта). Разница в 36 байтов возникла из-за удаления самого названия фрукта, запятых и пробелов.
Предположим, что было удалено одно слово (фрукт), а также запятые и пробелы, необходимые для его отделения от других слов. 36 байтов / 4 байта на символ = 9 символов разницы. Попробуем посмотреть, какие фрукты из списка могли дать такую разницу.
* «Айва» - 4 символа.
* «Алыча» - 5 символов.
* «Генипа» - 6 символов.
* «Гуарана» - 7 символов.
* «Курбарил» - 8 символов.
* «Мангостан» - 9 символов.
Удаление слова «Мангостан» (9 символов) приводит к уменьшению размера на 36 байтов, включая запятые и пробелы. Следовательно, правильный ответ: Мангостан.