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

Ал­го­ритм вы­чис­ле­ния зна­че­ния функ­ции F(n), где n  — на­ту­раль­ное число, задан сле­ду­ю­щи­ми со­от­но­ше­ни­я­ми:

F(n)  =  2 при n < 3;

F(n)  =  F(n − 2) + F(n − 1) − n, если n > 2 и при этом n чётно;

F(n) =F(n − 1) − F(n − 2) + 2 × n, если n > 2 и при этом n нечётно.

 

Чему равно зна­че­ние функ­ции F(32)?

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

Ре­ше­ние.

При­ведём про­грам­му на PascalABC, ре­ша­ю­щую дан­ную за­да­чу:

var n: longint;

function F(n: longint): longint;

begin

if n < 3

then F := 2

else if (((n mod 2) = 0) and (n > 2))

then F := F(n - 2) + F(n-1) - n

else if (((n mod 2) <> 0) and (n > 2))

then F := F(n - 1) - F(n - 2) + 2 * n;

end;

begin

writeln(F(32));

end.

 

При­ведём про­грам­му на Python:

 

f=[0]+[2]*2+[0]*30

for n in range(3, 33):

if n%2==1:

f[n]=f[n-1]-f[n-2]+2*n

else:

f[n]=f[n-1]+f[n-2]-n

print(f[32])

 

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

def F(n):

if n < 3:

return 2

if n % 2 == 0 and n > 2:

return F(n - 2) + F(n - 1) - n

if n % 2 != 0 and n > 2:

return F(n - 1) - F(n - 2) + 2 * n

print(F(32))

 

Ре­зуль­тат ра­бо­ты про­грам­мы  — 3194.

 

Ответ: 3194.

Источник: ЕГЭ по ин­фор­ма­ти­ке 04.04.2022. До­сроч­ная волна