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

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

1.  При­ба­вить 1.

2.  При­ба­вить 2.

3.  Умно­жить на 2.

4.  Умно­жить на 3.

Пер­вая ко­ман­да уве­ли­чи­ва­ет число на экра­не на 1, вто­рая уве­ли­чи­ва­ет его на 2, тре­тья умно­жа­ет на 2, четвёртая умно­жа­ет на 3.

Про­грам­ма для ис­пол­ни­те­ля  — это по­сле­до­ва­тель­ность ко­манд. На­при­мер, если в на­чаль­ный мо­мент на экра­не на­хо­дит­ся число 1, то про­грам­ма 213 по­сле­до­ва­тель­но пре­об­ра­зу­ет его в 3, 4, 8.

Сколь­ко су­ще­ству­ет про­грамм, ко­то­рые пре­об­ра­зу­ют ис­ход­ное число 1 в число 10 и при этом со­дер­жат ровно одну ко­ман­ду умно­же­ния?

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

Ре­ше­ние.

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

def f(start, end, k):

if start > end:

return 0

if start == end and k == 1:

return 1

else:

return f(start + 1, end, k) + f(start + 2, end, k) + f(start * 2, end, k + 1) + f(start * 3, end, k + 1)

print(f(1, 10, 0))

Здесь k  — счет­чик, ко­то­рый от­ве­ча­ет за то, сколь­ко раз было ис­поль­зо­ва­но умно­же­ние.

 

Ответ: 96.


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