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

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

F(n)  =  1 при n  =  1;

F(n)  =  n + F(n − 1), если n чётно;

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

 

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

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

Ре­ше­ние.

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

 

var n: longint;

function F(n: longint): longint;

begin

if n = 1

then F := 1

else if ((n mod 2) = 0)

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

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

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

end;

begin

n := F(26);

writeln(n);

end.

 

При­ведём ана­ли­ти­че­ское ре­ше­ние. За­ме­тим, что зна­че­ния функ­ции от нечётных n яв­ля­ют­ся зна­че­ни­я­ми сте­пе­ней двой­ки: F(1)  =  1, F(3)  =  2, F(5)  =  4 и так далее. Зна­чит, F(25)  =  4096. Тогда F(26)  =  26 + 4096  =  4122.

 

Ответ: 4122.

 

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

def F(n):

if n == 1:

return 1

if n % 2 == 0:

return n + F(n - 1)

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

return 2 * F(n - 2)

print(F(26))


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

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ−2021 по ин­фор­ма­ти­ке
Раздел кодификатора ФИПИ: 1.5.3 Ин­дук­тив­ное опре­де­ле­ние объ­ек­тов