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

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

1. раз­де­ли на 2

2.  вычти 3

Пер­вая из них умень­ша­ет число на экра­не в 2 раза, вто­рая умень­ша­ет его на 3. Ис­пол­ни­тель ра­бо­та­ет толь­ко с на­ту­раль­ны­ми чис­ла­ми. Со­ставь­те ал­го­ритм по­лу­че­ния из чиcла 76 числа 5, со­дер­жа­щий не более 5 ко­манд. В от­ве­те за­пи­ши­те толь­ко но­ме­ра ко­манд.

(На­при­мер, 21211– это ал­го­ритм:

вычти 3

раз­де­ли на 2

вычти 3

раз­де­ли на 2

раз­де­ли на 2,

ко­то­рый пре­об­ра­зу­ет число 33 в 3.)

Если таких ал­го­рит­мов более од­но­го, то за­пи­ши­те любой из них.

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

Ре­ше­ние.

По­сколь­ку Де­ли­тель ра­бо­та­ет толь­ко с на­ту­раль­ны­ми чис­ла­ми и число 76  — чет­ное, пер­вая ко­ман­да может быть 1, при этом по­лу­чит­ся число 38. Оно тоже чет­ное, тогда вто­рая ко­ман­да тоже может быть 1, по­лу­чит­ся число 19, из ко­то­ро­го число 5 можно по­лу­чить по­сле­до­ва­тель­но­стью ко­манд 212. Сле­до­ва­тель­но, из числа 76 число 5 можно по­лу­чить по­сле­до­ва­тель­но­стью ко­манд 11212.

 

Ответ:11212.

 

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

def f(flag, x):

if flag == 1:

return x / 2

if flag == 2:

return x - 3

 

x = 76

for flag in range(1, 3):

for flag1 in range(1, 3):

for flag2 in range(1, 3):

for flag3 in range(1, 3):

for flag4 in range(1, 3):

if f(flag, f(flag1, f(flag2, f(flag3, f(flag4, x))))) == 5:

print(flag4, flag3, flag2, flag1, flag)


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

Раздел кодификатора ФИПИ: 1.3.1 Об­ра­бот­ка ин­фор­ма­ции. Ал­го­рит­мы и их свой­ства.