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

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

1. воз­ве­ди в квад­рат

2.  при­бавь 1

Пер­вая из них воз­во­дит число на экра­не во вто­рую сте­пень, вто­рая уве­ли­чи­ва­ет его на 1.

Со­ставь­те ал­го­ритм по­лу­че­ния из числа 2 числа 101, со­дер­жа­щий не более 5 ко­манд. В от­ве­те за­пи­ши­те толь­ко но­ме­ра ко­манд.

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

при­бавь 1

при­бавь 1

воз­ве­ди в квад­рат

воз­ве­ди в квад­рат

при­бавь 1,

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

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

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

Ре­ше­ние.

По­сле­до­ва­тель­но пой­дем от числа 2 к числу 101:

 

2 + 1  =  3 (ко­ман­да 2);

32  =  9 (ко­ман­да 1);

9 + 1  =  10 (ко­ман­да 2);

102  =  100 (ко­ман­да 1);

100 + 1  =  101 (ко­ман­да 2).

 

Ответ: 21212.

 

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

def f(flag, x):

if flag == 1:

return x**2

if flag == 2:

return x + 1

x = 2

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))))) == 101:

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