1. Исполнитель Шифровальщик из одной цепочки символов получает новую цепочку следующим образом:
Если цепочка начинается с гласной буквы, Шифровальщик переставляет первую букву в конец слова, а если с согласной меняет местами первую и вторую буквы.
Этот алгоритм дважды применили к слову ЕНОТ. Какое слово получилось?
2. Исполнитель Шифровальщик из одной цепочки символов получает новую цепочку следующим образом:
Если длина цепочки - нечётное число, Шифровальщик удваивает центральную букву, а если чётная, то переставляет последнюю букву в начало слова.
Этот алгоритм дважды применили к слову МАГИЯ. Какое слово получилось?
3. Исполнитель Шифровальщик из одной цепочки символов получает новую цепочку следующим образом:
Если длина цепочки - нечётное число, Шифровальщик удаляет последний символ цепочки, а если чётная, то добавляет в начало цепочки букву Б. После этого каждая буква заменяется следующей за ней буквой в русском алфавите (А — на Б, Б — на В и т.д., а Я — на А).
Этот алгоритм применили к слову ИЮНЬ. Какое слово получилось?
Русский алфавит: .
4. Исполнитель Шифровальщик из одной цепочки символов получает новую цепочку следующим образом:
Сначала каждая буква цепочки заменяется следующей за ней буквой в русском алфавите (А — на Б, Б — на В и т.д., а Я — на А).
После этого если длина цепочки - чётное число, Шифровальщик удаляет последний символ цепочки, а если нечётная, то меняет местами первые два символа.
Этот алгоритм дважды применили к слову ЛАСКА. Какое слово получилось?
Русский алфавит: .
5. Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом. Сначала вычисляется длина исходной цепочки символов; если она нечётна, то дублируется средний символ цепочки символов, а если четна, то в начало цепочки добавляется буква С. В полученной цепочке символов каждая буква заменяется буквой, следующей за ней в русском алфавите (А - на Б,Б - на В и т. д., а Я - на А). Получившаяся таким образом цепочка является результатом работы описанного алгоритма.
Например, если исходной была цепочка КОТ, то результатом работы алгоритма будет цепочка ЛППУ, а если исходной была цепочка ВАНЯ, то результатом работы алгоритма будет цепочка ТГБОА.
Дана цепочка символов ЛАК. Какая цепочка символов получится, если к данной цепочке применить описанный алгоритм дважды (т. е. применить алгоритм к данной цепочке, а затем к результату вновь применить алгоритм)?
1) Минимальное основание = 10
2) Минимальное основание = 5
3) Минимальное основание = 8
Объяснение:
Система счисления записи чисел с цифр;
Цифры - специальные знаки или символы для записи чисел;
Алфавит - набор цифр, используемые в системе счисления;
Основание - количество цифр в алфавите.
Алфавит каждой системы счисления начинается с нуля:
2-ая (основание) система счисления: 0, 1; (содержит две цифры)
3-ая (основание) система счисления: 0, 1, 2; (содержит три цифры)
4-ая (основание) система счисления: 0, 1, 2, 3; (содержит четыре цифры)
5-ая (основание) система счисления: 0, 1, 2, 3, 4; (содержит пять цифр)
6-ая (основание) система счисления: 0, 1, 2, 3, 4, 5; (содержит шесть цифр)
7-ая (основание) система счисления: 0, 1, 2, 3, 4, 5, 6; (содержит семь цифр)
8-ая (основание) система счисления: 0, 1, 2, 3, 4, 5, 6, 7; (содержит восемь цифр)
9-ая (основание) система счисления: 0, 1, 2, 3, 4, 5, 6, 7, 8; (содержит девять цифр)
10-ая (основание) система счисления: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9; (содержит десять цифр)
1)
9, 122, 1100, 14
Находим наибольшие цифры в каждом числе
9, 122, 1100, 14
Находим наибольшую цифру среди всех чисел
9, 2, 1, 4
Наибольшая цифра = 9 ⇒ минимальное основание = 10
2)
100, 112, 1004, 4444
Находим наибольшие цифры в каждом числе
100, 112, 1004, 4444
Находим наибольшую цифру среди всех чисел
1, 2, 4
Наибольшая цифра = 4 ⇒ минимальное основание = 5
3)
11, 7, 12, 222, 102
Находим наибольшие цифры в каждом числе
11, 7, 12, 222, 102
Находим наибольшую цифру среди всех чисел
1, 7, 2
Наибольшая цифра = 7 ⇒ минимальное основание = 8
Исходный код:
def pack(m, k, l, p=0):
c = 0 # базовый случай когда еще не создавали контейнеры
# если есть что еще фасовать по пакетам
if m >= l:
m -= l
p += 1
c, p, m = pack(m, k, l, p) # продолжаем фасовать муку
# если можно создать контейнер, то создаем
if p >= k:
p -= k
c += 1
return c, p, m
m, k, l = map(int, input().split())
print(*pack(m, k, l))
Примечание:
Часть объяснений выполнено в виде комментариев в коде. Комментарии перед отправкой на проверку рекомендую стереть.
Описание переменных: m - остаток муки на текущий момент, k - кол-во пакетов в контейнере, l - кол-во муки в пакете. c - кол-во полных контейнеров, p - кол-во полных пакетов муки. При рекурсивном погружении фасуем по пакетам, при всплытии фасуем по контейнерам. Грамотная возвращение и передача параметров делают свое дело.
Cкрин из редактора кода тоже прикрепил)