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

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

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

A.  При­бавь 1

B.  Умножь на 2

C.  Умножь на 3

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

Сколь­ко су­ще­ству­ет про­грамм, ко­то­рые пре­об­ра­зу­ют число 6 в число 48, и при этом тра­ек­то­рия вы­чис­ле­ний со­дер­жит 14 или 18? Тра­ек­то­рия долж­на со­дер­жать хотя бы одно из ука­зан­ных чисел.

Тра­ек­то­рия вы­чис­ле­ний про­грам­мы  — это по­сле­до­ва­тель­ность ре­зуль­та­тов вы­пол­не­ния всех ко­манд про­грам­мы. На­при­мер, для про­грам­мы ACB при ис­ход­ном числе 3 тра­ек­то­рия со­сто­ит из чисел 4, 12, 24.

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

Ре­ше­ние.

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

def f(x, y):

if x > y:

return 0

if x == y:

return 1

else:

return f(x + 1, y) + f(x * 2, y) + f(x * 3, y)

print(f(6, 14) * f(14, 48) + f(6, 18) * f(18, 48) - f(6,14)*f(14,18)*f(18,48))

 

Ответ: 69.

 

При­ведём ре­ше­ние Мар­га­ри­ты Фаль­ко на языке Python.

def f (a, b, n):

if a > b:

return 0

if a == b and n > 0:

return 1

if a == 14 or a == 18:

return f(a+1, b, n+1) + f(a*2, b, n+1) + f(a*3, b, n+1)

return f(a+1, b, n) + f(a*2, b, n) + f(a*3, b, n)

print(f(6, 48, 0))


Аналоги к заданию № 13606: 83153 83181 13633 Все