Задание В17

Материал из Saratov FIO Wiki
Перейти к: навигация, поиск

Функция F вычисляется следующей программой, написанной на языке Pascal

Function F(X: integer): integer;

begin

     if X<=1 then F:=X

     else if odd(X) then F:=F(5*X+1)+1

     else F:=F(X div 6)+1

end;

Значение функции F(25) равно ___.

Решение.

Вычислим последовательно значения рекурсивной функции F:

F(25) = F(5*25+1)+1 = F(126)+1

F(126) = F(126 div 6)+1 = F(21)+1

F(21) = F(5*21+1)+1 = F(106)+1

F(106) = F(106 div 6)+1 = F(17)+1

F(17) = F(5*17+1)+1 = F(86)+1

F(86) = F(86 div 6)+1 = F(14)+1

F(14) = F(14 div 6)+1 = F(2)+1

F(2) = F(2 div 6)+1 = F(0)+1

F(0) = 0

F(2) = F(0)+1 = 1

F(14) = F(2)+1 = 2

F(86) = F(14)+1 = 3

F(17) = F(86)+1 = 4

F(106) = F(17)+1 = 5

F(21) = F(106)+1 = 6

F(126) = F(21)+1 = 7

F(25) = F(126)+1 = 8

Ответ: F(25) = 8.