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

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

A.  Вы­честь 3

B.  По­ме­нять ме­ста­ми

Пер­вая ко­ман­да умень­ша­ет число на экра­не на 3, вто­рая ко­ман­да ме­ня­ет раз­ря­ды де­сят­ков и еди­ниц в числе ме­ста­ми, причём она при­ме­ня­ет­ся толь­ко к чис­лам, у ко­то­рых цифра в раз­ря­де еди­ниц мень­ше цифры в раз­ря­де де­сят­ков. Про­грам­ма для ис­пол­ни­те­ля  — это по­сле­до­ва­тель­ность ко­манд.

Сколь­ко су­ще­ству­ет про­грамм, для ко­то­рых при ис­ход­ном числе 43 ре­зуль­та­том яв­ля­ет­ся число 13?

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

На­при­мер, для про­грам­мы AAB при ис­ход­ном числе 26 тра­ек­то­рия со­сто­ит из чисел 23, 20, 2.

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

Ре­ше­ние.

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

def change(x):

x1 = x // 10

x2 = x % 10

if x1 > x2:

return x2 * 10 + x1

else:

return x

def f(x, y):

if x < y :

return 0

if x == y:

return 1

else:

if x // 10 > x % 10:

return f(x - 3, y) + f(change(x), y)

else:

return f(x - 3, y)

print(f(43, 13))

 

Ответ: 4.


Аналоги к заданию № 87413: 87441 87442 Все