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