РЕШЕНИЕ 23 НОМЕРА (3/3)
Условие задачи
Исполнитель преобразует число на экране. У исполнителя есть четыре команды:
1. Прибавить 1
2. Прибавить 2
3. Умножить на 2
4. Умножить на 3
Программа — это последовательность команд. Например, если в начальный момент на экране находится число 1, то программа 213 последовательно преобразует его в 3, 4, 8.
Сколько существует программ, которые преобразуют исходное число 1 в число 24 и при этом не содержат двух последовательных команд сложения и двух последовательных команд умножения?
Идея решения
Передаём в рекурсивную функцию строку k - запись всех команд, которые были (+ для сложения, * для умножения). На каждом шаге проверяем: если в конце строки появилось ++ или ** - это нарушение, возвращаем 0. Условие проверяется и при завершении (достижении цели), и на каждом промежуточном шаге.
Код решения
1 2 3 4 5 6 7 8 9 10 11
Ответ: 9
"++" not in k and "**" not in k: - таким способом мы можем проверять, что подстроки "++" нет в нашей записи ходов (переменная k) и также одновременно будет выполняться, что подстроки "**" также нету в k
Решите задачи, чтобы усвоить материал
Решить в Личном КабинетеИсполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами:
A. Прибавь 1
B. Измени цифру
Первая из этих команд увеличивает число на экране на 1. Вторая команда применяется только к числу, у которого в записи присутствует хотя бы одна цифра 1, и действует, заменяя число на экране числом, в котором каждая цифра 1 заменена на цифру 3.
Программа для исполнителя - это последовательность команд.
Сколько существует программ, для которых при исходном числе 11 результатом является число 94?
Траектория вычислений программы - это последовательность результатов выполнения всех команд программы.
Например, для программы АВА при исходном числе 13 траектория состоит из чисел 14, 34, 35.
Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены латинскими буквами:
A. Прибавь 1
B. Измени цифру
Первая из этих команд увеличивает число на экране на 1. Вторая команда применяется только к числу, у которого в записи присутствует хотя бы одна цифра 1, и действует, заменяя число на экране числом, в котором каждая цифра заменена на цифру 3. Программа для исполнителя - это последовательность команд.
Сколько существует программ, для которых при исходном числе 10 результатом является число 84?
Траектория вычислений программы - это последовательность результатов выполнения всех команд программы.
Например, для программы АВА при исходном числе 13 траектория состоит из чисел 14, 34, 35.
