Задания
Версия для печати и копирования в MS Word
Тип 23 № 58225
i

Ис­пол­ни­тель Уве­ли­чи­тель пре­об­ра­зу­ет число на экра­не.

У ис­пол­ни­те­ля есть две ко­ман­ды, ко­то­рым при­сво­е­ны но­ме­ра.

1.  Вычти 2.

2.  Найди целую часть от де­ле­ния на 2.

Пер­вая из них умень­ша­ет число на экра­не на 2, вто­рая за­ме­ня­ет число на экра­не на целую часть от де­ле­ния числа на 2.

Про­грам­ма для ис­пол­ни­те­ля  — это по­сле­до­ва­тель­ность ко­манд.

При ис­ход­ном числе 80 ре­зуль­та­том яв­ля­ет­ся число 1, и при этом тра­ек­то­рия вы­чис­ле­ний со­дер­жит число 40 и не со­дер­жит 20. Сколь­ко таких про­грамм су­ще­ству­ет?

Тра­ек­то­рия вы­чис­ле­ний про­грам­мы  — это по­сле­до­ва­тель­ность ре­зуль­та­тов вы­пол­не­ния всех ко­манд про­грам­мы. На­при­мер, для про­грам­мы 122 при ис­ход­ном числе 10 тра­ек­то­рия со­сто­ит из чисел 8, 4, 2.

Спрятать решение

Ре­ше­ние.

При­ведём ре­ше­ние на языке Python.

def f(x, y):

if x < y or x == 20:

return 0

if x == y:

return 1

else:

return f(x - 2, y) + f(x // 2, y)

print(f(80, 40) * f(40, 1))

 

Ответ: 372.


Аналоги к заданию № 58225: 58224 Все