Решение: Определение длины слова
В одной из кодировок Unicode каждый символ кодируется 16 битами. Вова хотел написать текст (в нём нет лишних пробелов):
«Скользя по утреннему снегу,
Друг милый, предадимся бегу
Нетерпеливого коня
И навестим поля пустые…»
Одно из слов ученик написал два раза подряд, поставив между одинаковыми словами один пробел. При этом размер написанного предложения в данной кодировке оказался на 6 байт больше, чем размер нужного предложения. Напишите лишнее слово.
Решение по шагам
4 шагаОдин символ кодируется 16 битами, то есть 2 байтами.
$$16\ \text{бит} = 2\ \text{байта}$$При повторной записи добавились лишнее слово и один пробел. Всего добавлено 6 байт, то есть 3 символа.
$$6 : 2 = 3$$Один из добавленных символов — пробел, значит в лишнем слове 2 символа.
$$3 - 1 = 2$$В стихотворении слово из двух букв — «по».
Где здесь ошибаются
Забывают учесть пробел между двумя одинаковыми словами.
Считают 16 бит одним байтом вместо двух.
Выбирают слово по количеству байт без вычитания пробела.