Исполнитель преобразует число на экране. У исполнителя есть две команды:
. Прибавь 1
. Поменяй местами
Первая команда увеличивает число на 1. Вторая применяется только к числу, у которого цифра в разряде десятков меньше цифры в разряде единиц, и меняет цифры двух младших разрядов местами.
Сколько существует программ, для которых при исходном числе 100 результатом является число 150?
Решение:
def F(x, y):
if x == y: return 1
if x > y: return 0
ed = x % 10
dec = x // 10 % 10
s = F(x + 1, y)
if dec < ed:
new_x = x // 100 * 100 + ed * 10 + dec
s += F(new_x, y)
return s
print(F(100, 150))
Ответ: 35
Ответ:
35