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

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

A.  При­бавь 1

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

Пер­вая из этих ко­манд уве­ли­чи­ва­ет число на экра­не на 1. Вто­рая ко­ман­да при­ме­ня­ет­ся толь­ко к числу, у ко­то­ро­го цифра в раз­ря­де де­сят­ков по зна­че­нию мень­ше цифры, сто­я­щей в раз­ря­де еди­ниц, и дей­ству­ет, за­ме­няя число на экра­не чис­лом, в ко­то­ром цифры двух млад­ших раз­ря­дов по­ме­ня­лись ме­ста­ми.

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

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

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

На­при­мер, для про­грам­мы ABA при ис­ход­ном числе 13 тра­ек­то­рия со­сто­ит из чисел 14, 41, 42.

Ре­ше­ние.

Это за­да­ние ещё не ре­ше­но, при­во­дим ре­ше­ние про­то­ти­па.


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

1.  При­бавь 1

2.  По­ме­няй ме­ста­ми

Пер­вая из этих ко­манд уве­ли­чи­ва­ет число на экра­не на 1. Вто­рая ко­ман­да может при­ме­нять­ся толь­ко к числу, у ко­то­ро­го цифра раз­ря­да де­сят­ков по зна­че­нию мень­ше цифры, сто­я­щей в раз­ря­де еди­ниц, и дей­ству­ет, за­ме­няя число на экра­не чис­лом, в ко­то­ром цифры двух млад­ших раз­ря­дов по­ме­ня­ны ме­ста­ми. Про­грам­ма для ис­пол­ни­те­ля  — это по­сле­до­ва­тель­ность ко­манд.

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

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

def change(x):

x1 = (x % 100) // 10

x2 = x % 10

if x1 < x2:

return x//100*100 + x2 * 10 + x1

else:

return x

def f(x, y):

if x > y :

return 0

if x == y:

return 1

else:

if (x % 100) // 10 < x % 10:

return f(x + 1, y) + f(change(x), y)

else:

return f(x + 1, y)

print(f(110, 154))

 

Ответ: 34.


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

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ−2027