Найдите сумму чисел, которые будут выведены при вызове F(1).
Дан рекурсивный алгоритм:
| Паскаль | Cи | 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
