Форум » Динамическое программирование » Задача 23 № 467 » Ответить

Задача 23 № 467

t.martchukova: Исполнитель Калькулятор преобразует число на экране. У исполнителя есть две команды, которым присвоены номера: 1. Прибавить 1 2. Умножить на 2 Программа для исполнителя Калькулятор – это последовательность команд. Сколько существует программ, для которых при исходном числе 5 результатом является число 32, предпоследней командой которых является команда «1»? Ответ: 28, вопрос: почему и как решать?

Ответов - 2

polyakovss: Посмотрите разбор аналогичной задачи Р-06 здесь. Решение задачи:[pre2] def f(start,target): a=[0]*(target*2) a[start] = 1 for k in range(target): a[k+1] += a[k] a[k*2] += a[k] return a[target] print(f(5,32-1-1) + f(5,32//2 - 1)) [/pre2]

t.martchukova: Спасибо огромное))



полная версия страницы