Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом, Сначала Бычисляется длина исходной цепочки символов, если она нечётна, то удаляется первый символ цепочки, а если чётна,
то в начало цепочки добавляется символ г. в полученной цепочке символов каждая буква заменяется буквой,
Следующей за ней в русском алфавите (A — на Б, Б — на Вит. д., ая — на А). Получившаяся таким обрі в цепочка
является результатом работы алгоритма.
Например, если исходной была цепочка РУКА, то результатом работы алгоритма будет цепочка ДcФЛБ, а если
исходной была цепочка сон, то результатом работы алгоритма будет цепочка по.
Дана цепочка символов Рог, Какая цепочка символов получится, если к данной цепочке применить описанный
алгоритм дважды (т. е. применить алгоритм к данной цепочке, а затем к результату вновь применить алгоритм)?
Русский алфавит: АБВГДЕЕЖЗИЙқлмноПРСТУФХЦчшщъЫьэюя.
Если в N было четное количество единиц, то дописывается ноль. Поскольку ноль не меняет количества единиц, второй бит четности тоже будет нулевым. Правило №1: Если в двоичном представлении четное количество единиц, то дописывается 00.
Если в N было нечетное количество единиц, то дописывается единица. Это меняет количество единиц на четное, поэтому второй бит четности будет нулевым. Правило №2: Если в двоичном представлении нечетное количество единиц, то дописывается 10.
Первое число R, большее 180, это 181. Переведем его в двоичную систему счисления.
181₁₀ = 10110101₂
Мы видим, что оба наших правила нарушены, т.е. число 181 не подходит в качестве R.
Представление N (101101) содержит четное количество единиц, а для четного количества действует Правило №1 и мы должны записать 00, что уменьшит наше минимально возможное число R=181₁₀
Но если мы в числе N поменяем местами два правых бита, получим число 101110, которое больше чем 101101 и теперь по все тому же Правилу №1 мы получаем право приписать два нолика и получить R=10111000₂ = 184₁₀