Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом. Сначала вычисляется длина исходной цепочки символов; если она нечётна, то удаляется первый символ цепочки, а если чётна, то в середину цепочки добавляется символ А. В полученной цепочке символов каждая буква заменяется буквой, следующей за ней в русском алфавите (А - на Б, Б - на В и т. д., а Я - на А). Получившаяся таким образом цепочка является результатом работы алгоритма. Например, если исходной была цепочка РУКА, то результатом работы алгоритма будет цепочка СФБЛБ, а если исходной была цепочка СОН, то результатом работы алгоритма будет цепочка ПО.
Дана цепочка символов ПРУД. Какая цепочка символов получится, если к данной цепочке применить описанный алгоритм дважды (т. е. применить алгоритм к данной цепочке, а затем к результату вновь применить алгоритм)?
Русский алфавит: .
10(2) = 1 * 2^1 + 0 * 2^0 = 2 + 0 = 2
10(2) + 10(10) = 2(10) + 10(10) = 12(10)
Чтобы перевести число из системы счисления с основанием b, можно представить его в виде суммы:
Всё точно так же, как и в десятичной системе, только меняем 10 на основание системы счисления, например,
Другой избежать большого количества возведений в степень и записать, например, так:
Берем первую цифру – умножаем на b, прибавляем вторую цифру – умножаем на b, прибавляем третью цифру – ... – умножаем на b, прибавляем последнюю цифру.
Чтобы перевести из десятичной в систему с основанием b, нужно по сути сделать в обратном порядке то, что написано выше: либо восстановить разложение в сумму, либо выписать остатки от деления на b в обратном порядке. Например, переведем 27(4) в десятичную систему счисления:
27(4) = 1 * 16 + 2 * 4 + 3 * 1 = 1 * 4^2 + 2 * 4^1 + 3 * 4^0 = 123(4)
27 : 4 = 6 (ост. 3)
6 : 4 = 1 (ост. 2)
1 : 4 = 0 (ост. 1)
Выписываем в обратном порядке: 27(10) = 123(4)