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

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

1.  При­бавь 1

2.  При­бавь 2

3.  Умножь на 2

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

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

Ре­ше­ние.

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

def F(s, st=''):

if s > 22 or st[-2:] == '22':

return 0

if s == 22:

return 1

return F(s+1, st+'1') + F(s+2, st+'2') + F(s*2, st+'3')

print(F(2))

 

Ответ: 4953.

 

При­ведём ре­ше­ние Да­ни­и­ла Ар­тю­хи­на на языке Python.

def F(x, end, s = 0):

if x == end:

return 1

if x> end:

return 0

if s != 2:

return F(x+1, end, 1) + F(x+2, end, 2) + F(x*2, end, 3)

else:

return F(x+1, end, 1) + F(x*2, end, 3)

print(F(2, 22))

Источник: Проб­ный ЕГЭ Санкт-Пе­тер­бург, 20.02.2025. Ва­ри­ант 2