Предмет: Информатика, автор: IceNezox

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

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

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

F(n)= 2⋅F(n–2), если n>1 и n нечётно.

Чему равно значение функции F(26)?
Задание из ЕГЭ по информатике. Помогите пожалуйста решить через паскаль (другие языки не знаю) или Эксель. ​

Ответы

Автор ответа: pinguinbird
1

Pascal:

function F(n: integer):integer;

begin

   if n = 1 then F:=1

   else if n mod 2 = 0 then F:=n+F(n-1)

   else F:=2*F(n-2)

end;

var x:integer;

begin

   x:=26;

   x:=abs(x);

   write(F(x));

end.

Python:

def F(n):

 if n == 1: return 1

 elif n%2 == 0: return n+F(n-1)

 else: return 2*F(n-2)

print(F(26))

Приложения:

pinguinbird: это модуль
pinguinbird: можно проигнорить
IceNezox: а почему var идет после end, разве так можно) Сложновато написано)
pinguinbird: можно, да наоборот очень просто, это рекурсия
IceNezox: я просто только не давно начал писать простейшие программы, это для меня непонятно. Но спасибо
pinguinbird: не за что. Лучше питон изучайте, он проще и приятнее
IceNezox: в школе на паскале просто учились. Там небольшие знания были, поэтому начал с него
pinguinbird: рекомендую всё-таки к Питону присмотреться - вам понравится
IceNezox: добрый вечер, можете пожалуйста помочь еще с одним вопросом, у меня в профиле
pinguinbird: здравствуйте, ответил
Похожие вопросы
Предмет: Математика, автор: gantik6