Форум » Рекурсивные процедуры и функции » Задача Р-05 из задания 16 » Ответить

Задача Р-05 из задания 16

Светлана Митрофанова: Алгоритм вычисления функции F(n) задан следующими соотношениями: F(n) = 2n при n <= 5 F(n) = F(n–2) + 3*F(n/2) + n, если n > 5 и чётно, F(n) = F(n–1) + F(n–2) + F(n–3), если n > 5 и нечётно. Чему равно значение функции F(99) + F(100) На Паскале: var F(n:integer):integer; begin if n <= 5 then F:= 2*n; if (n > 5) and (n mod 2=0) then F: = F(n–2) + 3*F(n/2) + n; if (n > 5) and (n mod 2<>0) then F:= F(n–1) + F(n–2) + F(n–3); end; begin write(F(99)+F(100); end. Где ошибка?

Ответов - 1

polyakovss: Светлана Митрофанова пишет: Где ошибка? А Вы запускали свою программу на выполнение? F(n:integer):integer --> F(n div 2) [pre2] function F(n: integer): integer; begin if n <= 5 then F:= 2*n; if (n > 5) and (n mod 2=0) then F:= F(n-2) + 3*F(n div 2) + n; if (n > 5) and (n mod 2<>0) then F:= F(n-1) + F(n-2) + F(n-3); end; begin write(F(99)+F(100)); end.[/pre2]



полная версия страницы