Алгоритм вычисления значения функции F(n), где п — целое число, задан следующими соотношениями:
F(n) = 1 при п < 1;
F(n) = п + F(n — 11), если п — чётно, тг > 1,
F(n) = 5 • F(n — 6), если n > 1 и при этом тг — нечётно.
Чему равно значение функции F(30)?

Kaisool Kaisool    3   24.04.2021 22:52    0

Ответы
Samsas Samsas  24.04.2021 23:00

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

 

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.

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика