← К задачам
Средне · +3Динамическое программированиеЕГЭ задание 23Исполнитель

Число программ Удвоителя из A в B

Исполнитель «Удвоитель» работает с натуральным числом. У него две команды:

  1. прибавь 1 — увеличивает число на 1;
  2. умножь на 2 — умножает число на 2.

Программа — это последовательность команд. Напишите функцию count_programs(a, b), которая возвращает количество различных программ, переводящих число a в число b (1 ≤ a ≤ b). В ходе выполнения число строго возрастает, поэтому программ конечное число.

Формат входа: два целых числа a и b.

Формат выхода: целое число — количество программ. Если b < a, ответ 0; если a == b, ответ 1 (пустая программа).

Примеры:

  • count_programs(1, 3)2 (программы «+1, +1» и «·2, +1»).
  • count_programs(2, 10)7.
def count_programs(a, b):
    # Верните число различных программ,
    # переводящих число a в число b.
    # ваш код
    pass
Для запуска тестов необходима авторизация.