Например, если в начальный момент на экране находится число 1, то
Условие
Исполнитель преобразует число на экране.У исполнителя есть четыре команды, которым присвоены номера.1. Прибавить 1.2. Прибавить 2.3. Умножить на 2.4. Умножить на 3.Первая команда увеличивает число на экране на 1, вторая увеличивает его на 2, третья умножает на 2, четвёртая умножает на 3.Программа для исполнителя — это последовательность команд. Например, если в начальный момент на экране находится число 1, то программа 213 последовательно преобразует его в 3, 4, 8.Сколько существует программ, которые преобразуют исходное число 1 в число 22 и при этом не содержат двух последовательных команд сложения и двух последовательных команд умножения?
Ответ
11
Решение по шагам
Как рассуждать
Решение. Приведём решение на языке Python.def f(start, end, fl1, fl2): if start == end: return 1 if start > end: return 0 if start < end: if fl1 == False: return f(start * 2, end, True, False) + f(start * 3, end, True, False) if fl2 == False: return f(start + 1, end, False, True) + f(start + 2, end, False, True) else: return f(start + 1, end, False, True) + f(start + 2, end, False, True) + f(start * 2, end, True, False) + f(start * 3, end, True, False)print(f(1, 22, True, True))Таким образом, количество программ, удовлетворяющих условию задачи и выведенное на экран, равно
Осталось ещё 1 шаг — откроются после входа:
- Шаг 2
Бесплатно · займёт минуту