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

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

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

2.  вычти 1

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

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

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

 

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

вычти 1

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

вычти 1

вычти 1

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

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

 

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

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

Ре­ше­ние.

Не любое число яв­ля­ет­ся квад­ра­том це­ло­го числа, по­это­му, если мы пой­дем от числа 84 к числу 3, тогда од­но­знач­но вос­ста­но­вим про­грам­му. По­лу­чен­ные ко­ман­ды будут за­пи­сы­вать­ся спра­ва на­ле­во.

1.  Число 80 не яв­ля­ет­ся квад­ра­том, по­это­му оно по­лу­че­но вы­че­том еди­ни­цы из числа 81: 80 = 81 − 1 (ко­ман­да 2).

2.  Число 81 яв­ля­ет­ся квад­ра­том числа 9: 81 = 9 · 9 (ко­ман­да 1).

3.  Число 9 яв­ля­ет­ся квад­ра­том числа 3: 9 = 3 · 3 (ко­ман­да 1).

4.  Число 3 не яв­ля­ет­ся квад­ра­том, по­это­му оно по­лу­че­но вы­че­том еди­ни­цы из числа 4: 3 = 4 − 1 (ко­ман­да 2).

5.  Число 4 яв­ля­ет­ся квад­ра­том числа 2: 4 = 2 · 2 (ко­ман­да 1).

 

Ис­ко­мая по­сле­до­ва­тель­ность ко­манд: 12112

 

Ответ: 12112.

 

 

При­ве­дем дру­гое ре­ше­ние на языке 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))))) == 80:

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