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

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

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

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

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

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

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

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

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

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

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

Ре­ше­ние.

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

def f(start, end, fl1, fl2):

if start == end:

return 1

if start > end:

return 0

if start < end:

if fl1 == False:

return f(start * 2, end, True, False) + f(start * 3, end, True, False)

if fl2 == False:

return f(start + 1, end, False, True) + f(start + 2, end, False, True)

else:

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

print(f(1, 24, True, True))

Таким об­ра­зом, ко­ли­че­ство про­грамм, удо­вле­тво­ря­ю­щих усло­вию за­да­чи и вы­ве­ден­ное на экран, равно 9.

 

Ответ: 9.


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