Исполнитель Калькулятор преобразует число на экране. У исполнителя есть две команды, которым присвоены
номера:
1. Прибавить 1
2. Умножить на 4
Программа для исполнителя Калькулятор - это последовательность команд. Сколько существует программ, для
которых при исходном числе 2 результатом работы является число 80, и при этом траектория вычислений
содержит число 10 и не содержит число 30?
Ответы
Ответ дал:
0
Программа:
k = 0
def cnt(start, finish, miss):
if finish < start or finish == miss:
return 0
elif finish == start:
return 1
else:
global k
k = cnt(start, finish - 1, miss)
if finish % 4 == 0:
k += cnt(start, finish / 4, miss)
return k
print(cnt(2, 10, 30) * cnt(10, 80, 30))
Результат работы программы:
22
MrSolution:
Можно и руками решить, но здесь код простой.
Разве k не должно равняться 2?
Аргументируйте
Начальное число 2, а не 0
По условию, возможно я не прав, но из программы я вижу, что начинается с нуля
Не понял? Мы в к считаем, причем тут начало? Я cnt(start = 2... вызываю, все нормально.
А, понял, прошу прощения
Спасибо за ответ
:)
А какая была бы у Вас реализация без рекурсии?
Вас заинтересует
2 года назад
2 года назад
2 года назад
2 года назад
7 лет назад
7 лет назад
9 лет назад
9 лет назад