Site icon Информатика Эксперт

Е16.3 Найдите сумму чисел, которые будут выведены при вызове F(1).

Найдите сумму чисел, которые будут выведены при вызове F(1).

Дан рекурсивный алгоритм:

Паскаль Python
procedure F(n: integer);
begin
writeln(n);
if n < 6 then begin
writeln(n);
F(n+1);
F(n+2);
F(n*2)
end
end;
void F(int n)
{
printf(″%d\n″,n);
if (n < 6 ){
printf(″%d\n″,n);
F(n+1);
F(n+2);
F(n*2);
}
}

 

Найдите сумму чисел, которые будут выведены при вызове F(1).

Ответ:

 

Решение:

F1 (1+1+214+100+214=530) => F2 (214), F3 (100), F2 (214)

F2 (2+2+100+55+55=214) => F3 (100), F4 (55), F4 (55)

F3 (3+3+55+33+6=100)=> F4 (55), F5 (33), F6 (6)

F4 (4+4+33+6+8=55) => F5 (33), F6 (6), F8 (8)

F5 (5+5+6+7+10=33)=> F6 (6), F7 (7), F10 (10)

F6 (6)

Ответ: 530

Exit mobile version