5JDM6D - Исполнитель преобразует число на экране. У исполнителя есть две команды, …
логилея
№ 5JDM6D (Уровень сложности: Повышенный)
Исполнитель преобразует число на экране. У исполнителя есть две команды, которые обозначены номерами:

1. Прибавь 1
2. Поменять местами


Первая из этих команд увеличивает число на экране на 1. Вторая команда может применяться только к числу, у которого цифра разряда десятков по значению меньше цифры, стоящей в разряде единиц, и действует, заменяя число на экране числом, в котором цифры двух младших разрядов поменялись местами.

Программа для исполнителя — это последовательность команд. 
Сколько существует программ, для которых при исходном числе 100 результатом является число 142?
Правильный ответ:
21
Видео разбор:
Текстовое решение:
def f(start, end):
p = str(start) # преобразуем для удобства работы к строке
if start > end: return 0
if start==end: return 1
# Проверяем, меньше ли цифра в разряде десятков, чем в разряде единиц
if p[1]<p[2]: # Если меньше, то проводим замену
return f(start+1, end) + f(int(p[0]+p[2]+p[1]), end) # меняем цифры местами и преобразуем к числу
else: # Если нет, то выполняем только команду +1
return f(start+1, end)
print(f(110, 154))

Вставка формулы (LaTeX)

Быстрые символы: \frac{}{} (дробь) x^{} x_{} \sqrt{} \pi \leq \geq \int \sum \infty