Контрольные задания > Задача 3: В кодировке UTF-32 каждый символ кодируется 32 битами. Коля написал текст (в нем нет лишних пробелов): «Эри, Айыр, Гурон, Восток, Онтарио, Виннипег - озера». Ученик вычеркнул из списка название одного из озер. Заодно он вычеркнул ставшие лишними запятые и пробелы – два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 20 байтов меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название озера.
Вопрос:
Задача 3: В кодировке UTF-32 каждый символ кодируется 32 битами. Коля написал текст (в нем нет лишних пробелов): «Эри, Айыр, Гурон, Восток, Онтарио, Виннипег - озера». Ученик вычеркнул из списка название одного из озер. Заодно он вычеркнул ставшие лишними запятые и пробелы – два пробела не должны идти подряд. При этом размер нового предложения в данной кодировке оказался на 20 байтов меньше, чем размер исходного предложения. Напишите в ответе вычеркнутое название озера.
Ответ:
Решение:
1. Определяем количество символов в вычеркнутом слове, включая запятую и пробел. Так как размер уменьшился на 20 байт, а каждый символ в UTF-32 кодируется 4 байтами (32 бита), то было удалено 20 / 4 = 5 символов.
2. Перебираем слова, чтобы найти слово, которое вместе с запятой и пробелом содержит 5 символов:
* Эри - 3 символа
* Айыр - 4 символа
* Гурон - 5 символов
* Восток - 6 символов
* Онтарио - 7 символов
* Виннипег - 8 символов
После каждого слова идет запятая и пробел, которые также нужно считать: ", " - 2 символа.
3. Проверяем слова на соответствие:
* Эри, -> 3 + 2 = 5
* Айыр, -> 4 + 2 = 6
* Гурон, -> 5 + 2 = 7
* Восток, -> 6 + 2 = 8
* Онтарио, -> 7 + 2 = 9
* Виннипег, -> 8 + 2 = 10
Ответ: Эри